C/C++语言中的Define能否支持可变参数个数?
已经实现了一个类似printf接口的Debug函数,定义为
debugprint( char * file, int line, char * format, ...)
希望能够定义一个宏,自动加上__FILE__和__LINE__,类似
#define Debug(string,...) debugprint( __FILE__,__LINE__,string,...)
但是C语言不支持宏中的...,只能改变接口为
debugprint( char * file, int line, char * string), 这样就需要每次先用sprintf打到一个string中做格式化,再打印。
有什么办法可以即支持格式化又可以自动增加文件和行号呢?