內嵌組譯碼中的類型和變數大小
Microsoft 特定的
The LENGTH、SIZE 和 TYPE 運算子在內嵌組譯碼中具有受限的意義。 這些運算子完全無法搭配 DUP 運算子使用 (因為您無法使用 MASM 指示詞或運算子定義資料)。 但是,您可以使用這些運算子尋找 C 或 C++ 變數或類型的大小:
LENGTH 運算子可以傳回陣列中的元素數目。 它會針對非陣列變數傳回數值 1。
SIZE 運算子可以傳回 C 或 C++ 變數的大小。 變數的大小是從其 LENGTH 和 TYPE 所產生。
TYPE 運算子可以傳回 C 或 C++ 類型或變數的大小。 如果變數為陣列,TYPE 會傳回陣列中單一元素的大小。
例如,如果您的程式擁有 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 |
END Microsoft 特定的