2013년 1월 17일 목요일

Microsoft specific predefined macro


전체 목록은 여기에서 확인 할 수 있습니다. 자주 사용하는 내용인데도, 매번 헤깔리네요.


  • __cplusplus     : C++ 파일인 경우 정의
  • _DEBUG          : /LDd, /MDd, /MTd 와 함께 정의 됨 (디버그 버전인 경우)
  • __FUNCDNAME__   : 함수 이름을 보여줌


// Demonstrates functionality of __FUNCTION__, __FUNCDNAME__, and __FUNCSIG__ macros
void exampleFunction()
{
 printf("Function name: %s\n", __FUNCTION__);
 printf("Decorated function name: %s\n", __FUNCDNAME__);
 printf("Function signature: %s\n", __FUNCSIG__);
 
 // Sample Output
 // -------------------------------------------------
 // Function name: exampleFunction
 // Decorated function name: ?exampleFunction@@YAXXZ
 // Function signature: void __cdecl exampleFunction(void)
}


  • _M_AMD64, _M_X64    : x64 프로세서인 경우 정의 됨
  • _M_IX86             : x86 프로세스인 경우 정의 됨
  • _M_IA64             : IA64 (인텔 아이테니엄) 프로세서인 경우 정의 됨