5
私はさまざまなgithubの問題を読んでみましたが、その違いを追跡しようとしましたが、ちょうど混乱しました。Rustのextern fnとextern "C" fnの違いは何ですか?
#[no_mangle]
pub extern fn foo() {
...
}
対
#[no_mangle]
pub extern "C" fn foo() {
...
}
私はさまざまなgithubの問題を読んでみましたが、その違いを追跡しようとしましたが、ちょうど混乱しました。Rustのextern fnとextern "C" fnの違いは何ですか?
#[no_mangle]
pub extern fn foo() {
...
}
対
#[no_mangle]
pub extern "C" fn foo() {
...
}
the referenceが言うように、ので、違いはありません:デフォルトの外部ブロックで
は常に明示的には、彼らが呼んでいるライブラリは上の標準C ABIを使用していることを前提とし特定のプラットフォームです。
extern "C"
- これはextern fn foo();
と同じですが、Cコンパイラでサポートされているデフォルト値は同じです。
extern "C"
が、
RFC has been refusedを述べる必要に作成されました。
「我々はそのようextern "C" fn
またはextern fn
をフォーマットする必要がありますか?」についてのfmt-rfcsでissueがあります。