자료실/C언어

C언어 - 내장 매크로

자료수집중 2020. 7. 21.
반응형

*Visual Studio 2017로 작성했습니다.

 

내장 매크로는 사용자가 사용하기 편하게 미리 정의되어 있는 매크로입니다.

전처리기 매크로이기 때문에 컴파일하기 전에 해당 매크로는 해당 결과로 치환이 됩니다.

몇 가지 자주 사용하는 매크로만 알아보겠습니다.

__는 _(underbar 또는 underscore)가 2개입니다.

 

 

예제로 매크로를 사용해 보겠습니다.

#include <Stdio.h> 

void fun();

int main(void) {
	
	printf("컴파일 날짜 : %s \n", __DATE__);
	printf("컴파일 시간 : %s \n", __TIME__); 
	printf("컴파일 날짜 요일 시간 : %s \n", __TIMESTAMP__);
	printf("라인 번호 : %d \n", __LINE__);
	fun();
	printf("현재 소스파일 위치 : %s \n", __FILE__);
	return 0;

}
void fun() {
	printf("현재 함수 : %s \n", __FUNCTION__);
	printf("현재 함수 : %s \n", __func__);
}

__DATE__, __TIME__, __TIMESTAMP__는 만약 코드의 변경 없이 컴파일만 계속한다면 변하지 않습니다.

__LINE__도 10번 라인에 작성하자 정수 10으로 치환되어 출력된 결과를 볼 수 있습니다.

예제에 보면 __FUNCTION__, __func__를 두 가지 사용했는데 둘은 조금 다른 면이 있습니다.

__func__는 매크로가 아니라 미리 정의된 변수의 개념입니다. C99이전 버전에는 사용이 불가능합니다.

 

 

더 많은 매크로를 알고 싶다면 아래 링크를 참고해주세요.

 

미리 정의된 매크로

Microsoft C++ 컴파일러의 미리 정의된 전처리기 매크로가 나열 및 설명되어 있습니다.

docs.microsoft.com

 

댓글