X-Macro란?
매크로 X()를 재정의하여 데이터를 다양한 형태로 확장하는 기법으로, 주로 리스트 데이터를 정의하고 이를 바탕으로 열거형 및 이에 맵핑되는 문자열 배열을 생성하는데 사용된다.
사용 예시
#include <stdio.h>
// 리스트 정의
#define ERROR_LIST \
X(ERROR_NONE) \
X(ERROR_INVALID) \
X(ERROR_TIMEOUT) \
X(ERROR_OVERFLOW)
// enum 정의
enum {
#define X(name) name,
ERROR_LIST
#undef X
ERROR_COUNT
};
// 문자열 배열 생성
const char *ErrorNames[] = {
#define X(name) #name,
ERROR_LIST
#undef X
};
int main() {
for (int i = 0; i < ERROR_COUNT; i++) {
printf("Error Code: %d, Name: %s\n", i, ErrorNames[i]);
}
return 0;
}
'프로그래밍 > C' 카테고리의 다른 글
strtoul, strtol, strtof 구현 (0) | 2025.02.22 |
---|---|
C ] TUI ARINC429 비행 데이터 송신 앱 (Text-based User Interface) (0) | 2025.01.07 |
C] 콘솔 프로그램 플리커 현상 개선하기 (더블 버퍼링 & 오프스크린 버퍼) (0) | 2025.01.05 |
inet_addr, inet_aton, inet_pton, inet_ntoa, inet_ntop (0) | 2024.12.17 |
winmm API 사용하여 WAV 파일 재생하기 (0) | 2024.07.04 |