#define으로 정의하지 않아도 컴파일러에서 미리 정의된 몇 가지의 매크로가 있습니다. 이것들은 #undef할 수 없습니다.
__cplusplus : C++로 컴파일할 때 정의됩니다. 그렇지 않을 때는 정의되지 않습니다.
#ifdef __cplusplus//C++언어로 컴파일할 때
#endif
__DATE__ : 소스가 최후 컴파일 된 때의 날짜(문자열)
2019년 1월 5일 -> Jan 5 2019값이 됩니다.
__TIME__ : 소스가 최후 컴파일 된 때의 시간(문자열)
17시 39분 30초 -> 17:39:30값이 됩니다.
__FILE__ : 이 매크로가 사용된 위치의 소스 파일 경로와 이름(문자열)
__LINE__ : 이 매크로가 사용된 곳의 줄번호(숫자)
C:\test\test.cpp 코드
#include <stdio.h>
int main() {
printf("%s, %d\n",__FILE__, __LINE__);//C:\test\test.cpp, 4출력
return 0;
}
__STDC__ : ANSI C 표준으로 컴파일 된 경우 1로 정의됩니다.
__STDCPP_THREADS__ : (C++ 11 이상에서 지원) 다중 스레드로 프로그램을 짤 수 있을 때 1로 정의됩니다.
참고 :
'C, C++' 카테고리의 다른 글
#pragma warning (2) | 2019.12.20 |
---|---|
#pragma once (0) | 2019.12.19 |
#error (0) | 2019.12.17 |
#undef (0) | 2019.12.16 |
조건 매크로 (0) | 2019.12.15 |