【发布时间】:2016-03-27 09:05:26
【问题描述】:
简单来说,全局变量是在 main() 之外声明或定义的变量,其范围从定义点到程序结束。
我有几个关于全局变量的问题。我正在使用 GCC 编译器。
#include<stdio.h>
int a,b;
a=b=1;
main()
{
printf("%d\n%d",a,b);
}
这个程序产生错误,而
#include<stdio.h>
int a,b;
main()
{
a=b=1;
printf("%d\n%d",a,b);
}
生成正确的输出。为什么全局使用时不支持 a=b=1?
我还有一个问题要问。
#include<stdio.h>
a=1;
b=9;
c='c';
h='h';
main()
{
printf("%d\n%d\n",a,b);
printf("%c\t%c\n",c,h);
}
产生正确的结果,并警告数据定义没有类型或存储类。我完全对全局变量感到困惑。
【问题讨论】:
-
最后一个警告是因为你的主函数没有返回类型。
-
@Vimal:这完全是错误的。
-
我用返回类型和没有返回类型运行该代码。当然你需要为全局变量声明数据类型。
标签: c global-variables