Размеры типа и переменной во встроенном коде на языке ассемблера
Блок, относящийся только к системам Майкрософт
Операторы LENGTH, SIZE и TYPE имеют ограниченное значение в встроенной сборке. Их невозможно использовать с оператором DUP
(поскольку невозможно определить данные с директивами или операторами MASM). Однако их можно использовать для поиска размера переменных или типов C либо C++.
Оператор LENGTH может возвращать количество элементов в массиве. Он возвращает значение 1 для переменных, отличных от массива.
Оператор SIZE может возвращать размер переменной C или C++. Размер переменной — это продукт его LENGTH и TYPE.
Оператор TYPE может возвращать размер типа или переменной C++ или C++. Если переменная является массивом, ТИП возвращает размер одного элемента массива.
Например, если у вашей программы есть массив 8 элементов int
,
int arr[8];
результатом следующих выражений C и сборки является размер массива arr
и его элементов.
__asm | C | Size |
---|---|---|
LENGTH arr | sizeof(arr)/sizeof(arr[0]) |
8 |
SIZE arr | sizeof(arr) |
32 |
TYPE arr | sizeof(arr[0]) |
4 |
Завершение блока, относящегося только к системам Майкрософт
См. также
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по