1. Predefined macro
=> 미리 정의된 매크로를 사용하여 특정 (버전) 컴파일러 / 특정 환경 등에 대한 코드를 조건부로 컴파일 할 수 있게 하는 것
=> 사용자가 재정의 하거나 정의해서는 안됨(컴파일러가 정의)
2. Examples
__LINE__ // 매크로가 사용되는 라인의 라인 번호
__FILE__ // 매크로가 사용되는 파일의 파일 이름
__DATE__ // 파일 컴파일 날짜("mmm dd yyy")
__TIME__ // 파일 컴파일 시간("hhh mm ss")
__cplusplus // C++ 컴파일러값(98,03 : 199711L / 11 : 201103L / 14 : 201402L)
//C++ 11
__STDC_HOSTED__ // 구현이 호스트되는경우 1로 정의, freestanding은 0
__STDC_VERSION__ // C버전
__STDC_MB_MIGHT_NEQ_WC__ // 기본 문자 집합의 인코딩 값이 넓은 상대값과 같지 않을 수 있는 경우 1
__STDC_ISO_10646__ // wcar_t가 유니코드로 인코딩 된 경우 정의, yyymmL로 최신 유니코드 개정판 표현
__STDCPP_STRICT_POINTER_SAFETY__ // 구현에 strict pointer safety일경우 1로 정의
__STDCPP_THREADS__ // 프로그램에 둘 이상의 실행 thread가 있는 경우 1
//C++ 17
__STDCPP_DEFAULT_NEW_ALIGNMENT__ // size_t가 포함되어있으며, alignment-unaware operator new에 대한 호출에 사용
__STDC__ // C로 컴파일 할때만 정의되어 완전한 C 표준 준수를 나타냄
'C++ > Tips' 카테고리의 다른 글
[C++] Compilation Process (0) | 2021.06.25 |
---|---|
[C++] Try / Catch _2 (0) | 2021.06.24 |
[C++] 가변인자[variable argument] (0) | 2021.06.22 |
[C++] New_2 (0) | 2021.06.21 |
[C++] Union (0) | 2021.06.18 |