Posts Tagged ‘cpp’

gcc 매크로의 가변 인자 사용하기

일요일, 4월 6th, 2008

춮처 : http://developer.apple.com/documentation/DeveloperTools/gcc-4.0.1/cpp/Variadic-Macros.html

#define DEBUG
#ifdef DEBUG
#define DBG(…)    fprintf(stderr, __VA_ARGS__)
#else
#define DBG(…)    do{}while(0)
#endif

이런식으로 사용합니다.

C99 표준이라고 돼 있고 gcc 4.0부터는 확실히 이렇게 쓰는 것 같습니다.

gcc가 이전부터 사용하는 것과 맞추려면(C99표준은 아닌 것 같습니다)

#define eprintf(format, args…) fprintf (stderr, format , ##args)

이런식으로 쓰라는군요

## args 전에는 콤마(,)와 빈칸이 꼭 있어야 한답니다.