#define show_log(tag, fmt, arg...) printf("[%s][%s:%d]: "fmt"\n", tag, __func__, __LINE__, ##arg)
C可以编译通过,而C++编译出标题错误。
说是C++11要求,当字符串跟变量连接的时候,必须fmt前后增加一个空格才行。
#define show_log(tag, fmt, arg...) printf("[%s][%s:%d]: " fmt "\n", tag, __func__, __LINE__, ##arg)
本文探讨了C和C++中宏定义的不同之处,特别是关于格式字符串拼接的要求。在C++11中,为了确保类型安全,当格式字符串与其他变量连接时,需要在其前后添加空白字符。
5368

被折叠的 条评论
为什么被折叠?



