다음을 통해 공유


인라인 어셈블리의 형식 및 다양한 크기

Microsoft 전용

LENGTH, SIZETYPE 연산자는 인라인 어셈블리에서 의미가 제한됩니다. MASM 지시문이나 연산자를 사용하여 데이터를 정의할 수 없으므로 이러한 연산자를 DUP 연산자와 함께 사용할 수는 없습니다. 그러나 C 또는 C++ 변수나 형식의 크기를 찾기 위해 사용할 수는 있습니다.

  • LENGTH 연산자는 배열의 요소 수를 반환할 수 있습니다. 배열이 아닌 변수에 대해 값 1을 반환합니다.

  • SIZE 연산자는 C 또는 C++ 변수의 크기를 반환할 수 있습니다. 변수의 크기는 LENGTHTYPE곱입니다.

  • 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

Microsoft 전용 종료

참고 항목

__asm 블록에서 어셈블리 언어 사용