Share via


インライン アセンブリでの型と変数サイズ

Microsoft 固有の仕様

インライン アセンブリにおける LENGTHSIZE、および TYPE 演算子の意味には制限があります。 これらは、(MASM ディレクティブや演算子でデータを定義できないため) DUP 演算子では使用できません。 ただし、これらを使用し、C または C++ の変数または型のサイズを調べることはできます。

  • LENGTH 演算子は、配列内の要素の数を返すことができます。 配列ではない変数値には、1 を返します。

  • Size 演算子は、C または C++ 変数のサイズを返すことができます。 変数のサイズは、その LENGTHTYPE の積です。

  • 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 固有の仕様はここまで

関連項目

__asm ブロックでのアセンブリ言語の使用