小编use*_*770的帖子

如何找到 Linux 主目录的路径?

我需要包含在$HOME主目录的路径中的路径。该函数home_dir似乎正是这样做的,但已被弃用。我应该在它的位置使用什么?

文档是这样说的:

1.29.0 后已弃用:此函数的行为是意外的,可能不是您想要的。考虑使用 crates.io 中的 crate。

我应该使用什么类型的板条箱?标准 Rust 真的没有替代品吗?

rust

4
推荐指数
2
解决办法
1288
查看次数

为什么在返回类型 option<T> 时返回 None 当 T 不是引用时不返回空指针

nomicon 中的 FFI 部分指出

利用可空指针优化的最常见类型是Option<T>,其中None对应于nullOption<extern "C" fn(c_int) -> c_int>使用 C ABI(对应于 C 类型int (*)(int))表示可空函数指针的正确方法也是如此。

但是,此函数不返回null而是返回一个地址。

#[no_mangle]
pub extern "C" fn test() -> Option<u8> {
    None
}
Run Code Online (Sandbox Code Playgroud)

Rust 也会发出这个警告:

warning: `extern` fn uses type `Option<u8>`, which is not FFI-safe
 --> src/lib.rs:2:29
  |
2 | pub extern "C" fn test() -> Option<u8> {
  |                             ^^^^^^^^^^ not FFI-safe
  |
  = note: `#[warn(improper_ctypes_definitions)]` on by default
  = help: consider adding a …
Run Code Online (Sandbox Code Playgroud)

c c++ rust

0
推荐指数
1
解决办法
127
查看次数

标签 统计

rust ×2

c ×1

c++ ×1