いくつかの場所で、Microsoft のx64
プラットフォームの呼び出し規則が 1 つだけに絞り込まれているのを見ました。呼び出し元はスタックをクリーンアップし ( cdecl
)、パラメーターはスタックとレジスタの組み合わせで渡されます (ここでは正確な詳細には触れません)。これが OS の呼び出し規則である場合、Windows を対象とする他のすべてのコンパイラ (mingw-w64 など) もおそらくそれに従っていると思います。
この呼び出し規則は、他の主要なプラットフォーム ( x64
Linux など) でも当てはまりますか? それとも、Linux はまだ複数の呼び出し規約を使用していますか、それとも 1 つだけでなく別の規約を使用しているのでしょうか? Linuxで複数の呼び出し規則を使用GCC
または許可しますか?Clang
x64