다음을 통해 공유


MASM 식과 C++ 식 비교

MASM 식 평가와 C++ 식 평가의 가장 중요한 차이점은 다음과 같습니다.

  • MASM 식에서 기호의 숫자 값은 메모리 주소입니다. C++ 식에서 변수의 숫자 값은 주소가 아닌 실제 값입니다. 데이터 구조에는 숫자 값이 없습니다. 대신 실제 구조로 처리되며 그에 따라 사용해야 합니다. 함수 이름 또는 다른 진입점의 값은 메모리 주소이며 함수 포인터로 처리됩니다. C++ 데이터 형식에 해당하지 않는 기호(예: 수정되지 않은 모듈 이름)를 사용하는 경우 구문 오류가 발생합니다.

  • MASM 식 계산기는 모든 숫자를 ULONG64 값으로 처리합니다. C++ 식 계산기는 숫자를 ULONG64 캐스팅하고 모든 데이터 형식의 형식 정보를 유지합니다.

  • MASM 식 계산기를 사용하면 임의의 연산자를 임의의 숫자와 함께 사용할 수 있습니다. 잘못된 데이터 형식과 함께 연산자를 사용하는 경우 C++ 식 계산기에서 오류를 생성합니다.

  • MASM 식 계산기에서 모든 산술 연산이 문자 그대로 수행됩니다. C++ 식 계산기에서 포인터 산술 연산의 크기가 올바르게 조정되며 부적절한 경우 허용되지 않습니다.

  • MASM 식은 두 개의 밑줄( __ ) 또는 두 개의 콜론( :: )을 사용하여 클래스의 멤버를 나타낼 수 있습니다. C++ 식 계산기는 두 개의 콜론 구문만 사용합니다. 디버거 출력 은 항상 두 개의 콜론을 사용합니다.

  • MASM 식에서는 가장 일반적인 레지스터를 제외한 모든 항목 앞에 at sign(@)을 추가해야 합니다. 기호에서 이를 생략하면 레지스터 이름이 16진수 또는 기호로 해석될 수 있습니다. C++ 식에서 이 접두사는 모든 레지스터에 필요합니다.

  • MASM 식에는 소스 줄에 대한 참조가 포함될 수 있습니다. 이러한 참조는 엄중한 악센트( ` )로 표시됩니다. C++ 식에서는 소스 줄 번호를 참조할 수 없습니다.

참고 항목

MASM 번호 및 연산자

C++ 숫자 및 연산자

혼합 식 예제

서명 확장