日常开发笔记总结(八)
下列程序编译是否会报错:
// directive_1.c
#include <stdio.h>
#ifndef MIN
#define MIN(x, y) ((x) > (y) ? (y) : (x))
#endif /**/x
int main()
{
printf("min val = %d\n", MIN(100, -1));
return 0;
}
讲道理程序endif后面有个多余的x应该会编译失败,可是程序编译仅仅有个告警,运行正常。
[root c++]#gcc -g -Wall -o gcc gcc.c
gcc.c:6:12: warn......