반응형
printf로 로그를 출력하다보면 로그가 좀 더 풍부했으면 좋겠다는 생각들을 종종 하게 된다. 예를 들어서 현재 어떤 파일에서 몇번째 라인에 에러가 발생했는데, 특정 모듈은 언제 빌드가 되었는지 등등을 말이다. 다음 소개하는 매크로는 로그를 더욱 풍부하게 만들어 줄 수 있는 매크로 들이다.
매크로 | 타입 | 내용 |
__func__ | 문자열 (%s) | 매크로가 호출된 함수를 출력한다. |
__LINE__ | 정수 (%d) | 매크로가 호출된 라인을 출력한다. |
__FILE__ | 문자열 (%s) | 매크로가 출력된 파일을 출력한다. (빌드한 위치 기준) |
__DATE__ | 문자열 (%s) | 빌드가 이뤄진 날짜를 출력한다. |
__TIME__ | 문자열 (%s) | 빌드가 이뤄진 시간을 출력한다. |
어렵지 않은 내용이라 금방 이해할 수 있다. 아래는 위 매크로들을 이용해서 로그 출력을 하는 예제 코드이다.
#include <stdio.h>
#define log(fmt, ...) \
printf("[%s: %d][%s] " fmt "\t\t\t (%s, %s)\n", \
__FILE__, __LINE__, __func__, __DATE__, __TIME__);
int main() {
log("Hello, world")
}
출력
[macro.c: 8][main] Hello, world (Jan 3 2022, 21:04:53)
반응형
'모던 C 언어 > 사소하지만 유용한 C언어 매크로들' 카테고리의 다른 글
2-1. C언어 스마트포인터 (0) | 2022.01.14 |
---|