我已经尝试过阅读各种github问题,试图找出差异是什么,最后感到困惑。
#[no_mangle]
pub extern fn foo() {
...
}
VS
#[no_mangle]
pub extern "C" fn foo() {
...
}
答案 0 :(得分:12)
没有区别,因为the reference说:
默认情况下,外部块假定它们正在调用的库使用特定平台上的标准C ABI。
extern "C"
- 无论C编译器支持哪种默认值,都与extern fn foo();
相同。
创建issue时始终要求明确说明extern "C"
,RFC has been refused。
issue中有fmt-rfcs关于"我们应该将extern "C" fn
格式化为extern fn
吗?"。