为什么宏定义的末尾加分号可能是错误的? 49 次浏览 宏本质是文本替换,加上分号可能是误解成宏定义是一条语句,很可能造成编译错误。但是,如果是希望源代码不想额外增加分号结尾,宏定义末尾加分号是合理的。 #define LOG_HERE printf("log here\n"); 这样,LOG_HERE本身就包含分号结尾,不需要额外加分号就是一条语句。