오라클 Proc*C 작업시 define구문의 ##args를 알아먹지를 못합니다. 방법좀

jangcy999의 이미지

#define WRITELOG(h,lvl,fmt,args...) fWrite(h, __FILE__, __func__, __LINE__, lvl, fmt, ##args)

구문이 이상하다고 Proc*C가 뱉어냅니다.
Proc*C 버젼은 10.2.0.4.0 입니다.

익명 사용자의 이미지

뭐 우아한 방법이 있을 수도 있겠지만, 대충 안 우아하고 쉬운 길을 택하면

#define WRITELOG(h,lvl,...) fWrite(h, __FILE__, __func__, __LINE__, lvl, __VA_ARGS__)

이렇게 해 버리면 될 겁니다.
이것조차 안 먹히면 애초에 C99의 Variadic Macros를 지원을 안하는건데, 그러면 뭐 어쩔 수 없지요..

jangcy999의 이미지

#define fWrite(a,...) printf(a,__VA_ARGS__)

int main ()
{
fWrite("%s:%s:%d\n", __FILE__,__func__,__LINE__);
return 0;
}
PCC-S-2014, Encountered the symbol "..." when expecting one of the following
라네요 ㅎㅎㅎ