奇思妙想 · 2024年 4月 22日 0

为什么宏定义的末尾加分号可能是错误的?

48 次浏览

宏本质是文本替换,加上分号可能是误解成宏定义是一条语句,很可能造成编译错误。但是,如果是希望源代码不想额外增加分号结尾,宏定义末尾加分号是合理的。

#define LOG_HERE printf("log here\n");

这样,LOG_HERE本身就包含分号结尾,不需要额外加分号就是一条语句。