[ CnUnix ] in KIDS 글 쓴 이(By): Tin (엉덩탱탱™) 날 짜 (Date): 2004년 11월 29일 월요일 오전 06시 38분 26초 제 목(Title): Re: printf macro 답이 늦었는데 #define TRACE(f,a...) printf(f , ##a) 는 GCC extension인 것으로 알고 있습니다. ##a 는 가변인자 리스트를 나타냅니다. f와 , 사이에 공백을 넣는 이유는 가변인자 부분인 a...에 아무 것도 안 들어가고 그때문에 그 앞의 ,도 사라지는 경우를 대응하기 위한 것으로 알고 있습니다. 그리고 저 앞에서 #ifdef DEBUG #define TRACE printf #else #define TRACE(...) #endif 와 같은 구문이 보이는데 제대로 하시려면 #ifdef DEBUG #define TRACE printf #else #define TRACE(...) (void) 0 #endif 와 같이 해야하는 것으로 알고 있습니다. @ Happy C~ (가 될 수 있나?) |