본문 바로가기

C, C++

미리 정의된 매크로

#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로 정의됩니다.

 

 

참고 :

https://en.cppreference.com/w/cpp/preprocessor/replace

'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