假设我有一个全局变量,并且我想将另一个变量分配给它。我发现你可以在函数内部将另一个值分配给全局变量:
然而,在函数外部分配全局变量是行不通的!
为什么会发生这种情况?
int i = 8;
int main(void)
{
i = 9; /* Modifies i */
return 0;
}
然而,在函数外部分配全局变量是行不通的!
int i = 8;
i = 9; /* Compiler error */
int main(void)
{
return 0;
}
我收到了以下错误信息:
warning: data definition has no type or storage class
warning: type defaults to 'int' in declaration of 'i'
error: redefinition of 'i'
note: previous definition of 'i' was here
int i = 8;
^
为什么会发生这种情况?
i = 9;
,它会隐式地成为类型int
,但是GCC 8.1.0在-std=c90
下警告data definition has no type or storage class
,无论是否使用-pedantic
。 - Jonathan Lefflerint i = 9;
,而不是int i = 8; i = 9;
?代码执行从main()
开始。 - Weather Vane