반응형
*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이전 버전에는 사용이 불가능합니다.
더 많은 매크로를 알고 싶다면 아래 링크를 참고해주세요.
'공부 자료실 > C언어' 카테고리의 다른 글
C언어 - 파일 입출력 (0) | 2020.08.05 |
---|---|
C언어 - #if, #elif, #else, #endif 와 ifdef, #ifndef, #endif 지시문 (1) | 2020.07.22 |
C언어 - #define (0) | 2020.07.04 |
C언어 - void 포인터 (0) | 2020.07.03 |
C언어 - 포인터와 다중 포인터 (0) | 2020.07.03 |
댓글