我正在尝试理解“全局变量”,我正在运行教科书中的程序:
在“Xcode版本9.3(9E145)”中出现错误,错误为:
将'glob'重新定义为不同类型的符号
#include <stdio.h>
void add(void);
void sub(void);
int glob = 10;
int main(void)
{
add();
printf("Val = %d\n", glob);
sub();
printf("Val = %d\n", glob);
return 0;
}
void add(void)
{
glob++;
}
void sub(void)
{
glob--;
}
我有一个问题:
为什么Xcode会出现此错误?
答案 0 :(得分:1)
不要问为什么。但是你的一个编译器(或者它可能只是一个雄心勃勃的语法 - 荧光笔)非常清楚地确信以前曾将glob
视为其他东西的标识符。
搜索,我没有发现任何明显的东西,在一个只有最广泛使用的包含的短代码中,两个编译器有不同的意见肯定是奇怪的。
但解决问题的直接方法应该是简单地将glob
重命名为不同的东西。使用更长的名称,添加更多的建议,不会伤害。一个稍微夸张的提议将是
int globalvariableofunusedname = 10;
这只回答你的第一个问题。对于第二个(如果你保留在这里),检查合理的评论。不过,我建议将其分成自己的问题。