最近在移植一个开源代码, 调试时发现怎么都跟预期的结果不一样, 函数未执行完就退出了, 困扰了我好几天, 今天偶然间看到宏定义的内容, 然后才发现是在宏中执行了退出, 原来, 宏还可以这么用, 今天就分享出来, 避免大家今后踩坑. 1. 示例代码 #include <stdio.h> #define TRUE 1 #define FALSE 0 #define ERROR_MSG(msg) return printf("%s", msg), 0 int main() { printf(