C/C では、関数の引数と戻り値の処理方法を指定するさまざまな呼び出し規約が提供されています。これらの規則を理解することは、コードを最適化し、プログラムのさまざまな部分間の効率的な対話を確保するために重要です。
C/C では、いくつかの呼び出し規則が利用できます。
cdecl:
cdecl (値による呼び出し) では、呼び出された関数がクリーンアップの責任を負います。戻る前のスタック。引数は右から左にスタックにプッシュされます。
pascal:
pascal (値と結果による呼び出し) では、呼び出し先は返される前にスタックのバランスをとる責任があります。戻り値もスタックに渡されます。
stdcall:
stdcall (値による呼び出し) では、呼び出し先はスタックをクリーンアップする責任があります。引数はスタックに右から左にプッシュされ、戻り値は EAX レジスタに格納されます。
fastcall:
fastcall (レジスタによる呼び出し) では、最初の 2 つの引数ECX および EDX レジスタに渡されます。残りの引数は右から左にスタックにプッシュされます。
**その他の呼び出し規則の詳細については、次の包括的な回答を参照してください。]
以上がさまざまな呼び出し規約は C/C 関数の実行にどのような影響を与えますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。