命令セット・アセンブリ
ABI(アプリケーションバイナリインターフェース)の説明として正しいものはどれか。
- Aソースコードのレベルで、関数の名前と引数の型を定めた約束
- BCPUの命令の種類とビットの並びだけを定めた約束
- C呼び出し規約やデータ型の大きさ・整列など、機械語のレベルでプログラム同士を結びつけるための約束
答えと解説を見る
正解:C. 呼び出し規約やデータ型の大きさ・整列など、機械語のレベルでプログラム同士を結びつけるための約束
ABIは、コンパイル済みのプログラムやライブラリが一緒に動くための機械語レベルの約束で、呼び出し規約、intやlongやポインタの大きさ、構造体の整列、システムコールの呼び方などを含みます。APIはソースコードで関数の使い方を決めるもので、APIが同じでもABIが違えば、作り直さないとライブラリは使えません。同じRISC-VのISAでも、OSや用途によってABIが違うことがあります。
- A. それはAPI(アプリケーションプログラミングインターフェース)です。
- B. それはISAで、ABIはその上の約束です。
- C. 正しい。コンパイル済みのコード同士の約束です。