这个错误没那么隐晦吧。
1.你可以单步跟踪一次。如果编译都不能通过,错误提示定位到插入宏的地方,马上就知道要去检查宏定义。
2.如果你有一个好的代码编辑器或阅读器,这个错误非常明显。
程序用fish着色后的效果:
#include <stdio.h>
#define MY_PRINT(i) \
do {\
printf("%d\n", i);\
} while(0)
int main()
{
int i=9;
MY_PRINT(i);
return 0;
}
正确的代码该有的效果:
#include <stdio.h>
#define MY_PRINT(i) \
do {\
printf("%d\n", i);\
} while(0)
int main()
{
int i=9;
MY_PRINT(i);
return 0;
}
----------------解决方案--------------------------------------------------------
我看了大半天也没看出哪里有区别来着
可编译就是一个报错,一个通过……
----------------解决方案--------------------------------------------------------
回复 27# VxWorks 的帖子
提示: 作者被禁止或删除 内容自动屏蔽