Rust 什么';extern fn和extern的区别是什么;";铁锈中的fn?

Rust 什么';extern fn和extern的区别是什么;";铁锈中的fn?,rust,ffi,Rust,Ffi,我试着阅读各种github问题,试图找出它们之间的区别,结果弄糊涂了 #[no_mangle] pub extern fn foo() { ... } vs 没有区别,因为正如所说: 默认情况下,外部块假定它们调用的库使用特定平台上的标准C ABI extern“C”——这与extern fn foo()相同C编译器支持的默认值 创建时始终需要显式声明extern“C”,但 有一个关于“我们是否应该将extern”C“fn格式化为那样或extern fn?”的in #[no_mangle

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

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


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

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

extern“C”
——这与
extern fn foo()相同C编译器支持的默认值

创建时始终需要显式声明
extern“C”
,但

有一个关于“我们是否应该将
extern”C“fn
格式化为那样或
extern fn
?”的in

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