Comprehensive Rust(繁体中文)
C++ 方法;手動繫結會需要手動編寫這類頂層的、可自由使用的函式 • 這項工具和程式庫可處理一組核心型別,例如: – &[T] 傳遞時可以跨越 FFI 邊界,但無法保證任何特定 ABI 或記憶體布局。使用手動繫結時, std::span/&[T] 必須從一個指標和長度去手動解構並重新建構。這麼做很容易出錯, 因為每種語言各以略微不同的方式表示空切片 – std::unique_ptr< allow_unsafe = true? 籠統的答案是根據一般 Rust 標準,任何 C/C++ 程式碼都不「安全」。從 Rust 來回呼叫 C/C++ 可能會對記 憶體執行任何作業,進而破壞 Rust 本身資料布局的安全性。在 C/C++ 互通性中如果出現「過多」unsafe 關鍵字,可能會傷害這類關鍵字的訊噪比,且具有爭議性,但嚴格來說,在 Rust 二進位檔中導入任何外來 程式碼,都可能對 Rust 造成非預期行為。 only used in tests. 舉例來說: [crate.my-new-crate] group = 'test' # only used in test code 視 Crate 原始碼布局而定,您可能也需要使用這個檔案指定其 ‘LICENSE 檔案的位置。 稍後我們會看到一些其他您需在這個檔案中設定的項目,才能解決問題。 46.3 下載 Crate gnrt 這項工具瞭解如何下載 0 码力 | 358 页 | 1.41 MB | 10 月前3
共 1 条
- 1