【发布时间】:2014-09-17 13:04:47
【问题描述】:
C 标准规定变量名称不应与标准 C 关键字和标准函数名称匹配。那为什么下面的代码编译没有错误呢?
#include <stdio.h>
int main()
{
int main = 10;
printf("Magic is %d", main);
return 0;
}
在下面的answer 中,ouah 写道
main不是保留标识符,允许命名变量 C中的main
那么考虑到下面的程序,这是否意味着fopen 同样没有被保留?
#include <stdio.h>
int main()
{
int fopen = 10;
printf("Magic is %d", fopen);
return 0;
}
【问题讨论】:
-
C 标准说了很多事情......
-
有趣的是,1984 年,一位 Sjoerd Mullender 在国际混淆 C 代码竞赛中采用了整个“main 作为全局变量”概念。看到它here。