Skip to content
Latchkey

ABIにおける呼び出し規約とは?

呼び出し規約は、呼び出し元と呼び出し先が引数の受け渡し、結果の返却、そしてそれぞれが保持すべきレジスタについて合意する方法を規定する、アプリケーションバイナリインタフェースの一部です。また、呼び出しの前後でスタックがどのように構築され後始末されるかも定めます。これは契約であるため、異なるツールでコンパイルされたコードは、同じ規約を共有する場合にのみ互いを呼び出せます。

なぜ重要か

コンパイル単位間で呼び出し規約が一致しないと、引数の破損、クラッシュ、あるいは静かに誤った結果を招きます。規約を知ることは、外部関数インタフェースや複数言語混在のビルドに不可欠です。

関連ガイド