C99标准支持可变参数宏(variadic macros), 定义一个自己的LOG打印宏:
#define MY_LOG(fmt, ...) do{ \
printf("[%s:%d][%s] " fmt "\n", \
__FILE__, __LINE__, __FUNCTION__, __VA_ARGS__); \
} while (0)
void test() {
MY_LOG("%s", "hello world");
MY_LOG("%s, %d", "hello world", 123);
}
VS 2010 上测试通过.