我有一个可变参数函数:
LogWrite(FILE * fp, int level, const char * filename, const char * function, ...)
它应该这样调用:
LogWrite(fp, int Level, __FILE__, __FUNCTION__, "Message: %s", message)
但是,我想编写一个可变参数宏以使其更易于调用:
1: #define LOGWRITE_L1(...) LogWrite(file, 1, __FILE__, __FUNCTION__, ...)
or
2: #define LOGWRITE_L1(file, ...) LogWrite(file, 1, __FILE__, __FUNCTION__, ...)
这样开发人员就可以使用以下方式调用它:
LOGWRITE_L1(myfile, "Hello!");
代替
LogWrite(myfile, 1, __FILE__, __FUNCTION__, "Hello!")
但是,这两种方法都给我一个编译器错误。
1: expected expression before '...'
2:'file' undeclared (first use in this function)
这是可能的还是我在浪费时间?我以前从未使用过可变参数函数,所以不确定。我的函数有效......我使用完整的声明调用它,并将它写入我想要的文件。