这个错误没那么隐晦吧。
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;
}
为了防止世界被破坏,为了守护世界的和平,贯彻爱与真实的邪恶,可爱又迷人的反派角色,VxWorks!
Don't ask me any question.I'm just here to buy soy sauce.