· ☕ 1 min read
· ✍️ oser
由一个尾部逗号的问题,会引发不同平台编译器对变参宏的展开的问题,比如如下的一个例子: #define NEW_LOG(formatmsg, ...) fprintf(stdout, "%s(%u): " formatmsg "\n", __FILE__, __LINE__, __VA_ARGS__) 如果传一个可变参数,则编译正常 NEW_LOG("test for num: %d", 100); 这时候宏展开是这样的 fprintf(stdout, "%s(%u): test for num: %d\n", __FILE__,