同じ C ソースを 2 回コンパイルしました。
- アーキテクチャ: x86、OS: Slackware 14 (32 ビット)、コンパイラ: gcc 4.7.1 (32 ビット)
- アーキテクチャ: x86、OS: Windows XP (32bit)、コンパイラ: gcc 4.4.1 (32bit)
アセンブラのリストを読んでいると、呼び出し規約 (System V i386 ABI と cdecl) は、名前の装飾 (最初のケースでは末尾の _ がない) と呼び出し先保存レジスタ (EDI、ESI、EBX vs EAX、ECX、EDX) を除いて、同じように見えることに気付きました。 )。
それは本当に本当ですか?
もしそうなら、名前の装飾を除いて、System V i386 ABI を cdecl の変種と見なしてもよいでしょうか?
ありがとうございました