5
私はSystem V Application Binary Interfaceを読んでいます。私は理解できない部分があります。配列の呼び出し規約があるのはなぜですか?
まず、文書は
ませ試みはC
(10ページ)以外の言語用のABIを指定するためになされていないと述べています。
その後、20ページの、配列はメモリとして分類され、POINTER等:
集計(構造体や配列)の分類と労働組合の種類は次のよう に動作します:
を...
分類は、呼び出し規約を定義するために使用されます。呼び出し規約は、値と境界がどのように関数に渡され、関数から返されるかを定義します。私がアルゴリズムを正しく読んでいれば、配列はINTEGER、MEMORY、またはSSEとして分類できます。
しかし、C言語では、配列は常に渡され、ポインタとして返されます。では、なぜ配列を分類するのが有益で、どのような状況で配列クラスが重要なのでしょうか?
最初の引用は、理解しやすい[共通語(HTTPS:// EN .wikipedia.org/wiki/Lingua_franca)を参照してください。 2番目の見積もりに関しては、Cがポインタをポインタとして渡す(または、最初の要素へのポインタに配列の崩壊をさせる)のは、Cが最初からどのように動作したかということであり、それがCの仕様であると言えます。 –
[関連質問](http://stackoverflow.com/questions/38800044/what-kind-of-c11-data-type-is-an-array-according-to-the-amd64-abi)。 –