Comprehensive Rust(繁体中文) 202406
x_axis(x: i32) -> &(i32, i32) { let point = (x, 0); return &point; } • 參照可說是「借用」自身參照的值,對不熟悉指標的學生而言,這是不錯的模型,因為程式碼可以使用 參照來存取值,但仍歸原始的變數所「擁有」。本課程將在第 3 天進一步說明擁有權。 • 參照需以指標的形式實作,主要優點是大小會比指向的目標小得多。熟悉 C 或 C++ 的學生會覺得參 會利用垃圾收集器來識別並捨棄無法再存取的記憶體。這能確保任何指標都 可以取消參照,進而消除 UAF (使用已釋放記憶體) 和其他類別的錯誤。不過,GC 會耗費執行階段 成本,且很難正確調整。 在許多情況下,Rust 的擁有權和借用模型效能都能媲美 C 語言,並在必要處精準分配及釋放,達成零成 本作業。Rust 也提供類似 C++ 智慧指標的工具。如有需要,您還可以使用參照計數等其他選項,而且甚至 還有第三方 Crate,可支援執行階段的垃圾收集作業 'virt' 開發板。 • 普遍來說,微控制器並沒有 MMU 或多個權限層級 (Arm CPU 上的例外狀況層級、x86 上的環), 但應用程式處理器有。 • QEMU 可針對每個架構模擬不同的機器或開發板模型。'virt' 開發板並無對應至任何特定的真實 硬體,而是專為虛擬機器設計。 53.1 準備使用 Rust 我們需要先完成一些初始化作業,才能開始執行 Rust 程式碼。 .section .init0 码力 | 356 页 | 1.41 MB | 1 年前3
共 1 条
- 1