インライン アセンブリでの型と変数サイズ
Microsoft 固有の仕様
インライン アセンブリにおける LENGTH、SIZE、および TYPE 演算子の意味には制限があります。 これらは、(MASM ディレクティブや演算子でデータを定義できないため) DUP
演算子では使用できません。 ただし、これらを使用し、C または C++ の変数または型のサイズを調べることはできます。
LENGTH 演算子は、配列内の要素の数を返すことができます。 配列ではない変数値には、1 を返します。
Size 演算子は、C または C++ 変数のサイズを返すことができます。 変数のサイズは、その LENGTH と TYPE の積です。
TYPE 演算子は、C または C++ 型の変数のサイズを返すことができます。 変数が配列の場合、TYPE は配列の 1 つの要素のサイズを返します。
たとえば、プログラムに 8 つの要素の int
の配列がある場合、
int arr[8];
次の C およびアセンブリ式は、arr
とその要素のサイズを生成します。
__asm | C | サイズ |
---|---|---|
LENGTH arr | sizeof(arr)/sizeof(arr[0]) |
8 |
SIZE arr | sizeof(arr) |
32 |
TYPE arr | sizeof(arr[0]) |
4 |
Microsoft 固有の仕様はここまで
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示