我试着阅读各种github问题,试图找出它们之间的区别,结果却弄糊涂了.

#[no_mangle]
pub extern fn foo() {
   ...
}

与.

#[no_mangle]
pub extern "C" fn foo() {
   ...
}

推荐答案

没有区别,因为正如the reference所说:

默认情况下,外部块假定它们调用的库使用特定平台上的标准C ABI.

extern "C"——无论C编译器支持什么默认值,这都与extern fn foo();相同.

创建issue时,总是需要明确说明extern "C",而不是RFC has been refused.

fmt-rfcs中有一个issue关于"我们应该把extern "C" fn格式化成那样还是extern fn?".

Rust相关问答推荐

为什么复印是豆荚的一个重要特征?

如何在Tauri中将变量从后端传递到前端

在Rust中,如果Result是Err,运行副作用(如日志(log)记录)的惯用方法是什么

当T不执行Copy时,如何返回Arc Mutex T后面的值?

RUST应用程序正在退出,错误代码为:(退出代码:0xc0000005,STATUS_ACCESS_VIOLATION)

在Rust中判断编译时是否无法访问

获取与父字符串相关的&;str的原始片段

Rust ndarray:如何从索引中 Select 数组的行

Rust wasm 中的 Closure::new 和 Closure::wrap 有什么区别

为什么某些类型参数仅在特征边界中使用的代码在没有 PhantomData 的情况下进行编译?

从Rust 的临时文件中创建引用是什么意思?

如何将 C++ 程序链接到 Rust 程序,然后将该 Rust 程序链接回 C++ 程序? (cpp -> rust -> cpp)

使用 Rust 从 Raspberry Pi Pico 上的 SPI 读取值

从光标位置旋转精灵

哪些特征通过 `Deref` 而哪些不通过?

使用方法、关联函数和自由函数在 Rust 中初始化函数指针之间的区别

Rust,使用枚举从 HashMap 获取值

`if let` 只是另一种编写其他 `if` 语句的方式吗?

如何构建包含本地依赖项的 docker 镜像?

如何在宏中的多个参数上编写嵌套循环?