1、首先,我们可以在函数外面定义变量,就是全局变量。
2、局部变量可以与全局变量同样命名。
3、但是优先级是局部变量优先。
4、但是局部变量的生命周期是整个结构内。
5、全局变量是整个程序结束,才释放。
6、我们也可以为变量加上修饰符。
c语言中全局变量主要是定义在所有函数之外的变量,在程序执行的过程中一直有效,可以被任何函数引用、赋值,想要定义它,一般将其定义在主函数main()之外就行。
例如下面的程序段,变量m就是一个全局变量,定义在主函数main()外面,它可以被函数fun_1访问,也可以被fun_2访问。
#include
int m;
int main()
{
fun_1();
fun_2();
return 0;
}
void fun_1()
{
//可以使用m
}
void fun_2()
{
//可以使用m
}
全局变量,"程序的编译单位是源程序文件,一个源文件可以包含一个或若干个函数。在函数内定义的变量是局部变量,而在函数之外定义的变量称为外部变量,外部变量是全局变量(也称全程变量)。全局变量可以为本文件种其他函数所共用。它的有效范围为从定义变量的位置开始到本源文件结束。"设置全局变量的作用是增加函数间数据联系的渠道。
众所周知,全局变量在被定义后,系统会为全局变量分配内存并且它还可以被其他模块通过C语言中extern关键字调用。这样就必须在 xx.C 和xx.H 文件中定义。
当然是合法的了,不过也不能乱用,定义对了,也得用对,比如
你要是定义了(int
)型的就不能把它当成是char(字符型)的来用,所以你要得反复看你变出来的程序,看看是不是有错。
定义在函数体外部的变量叫全局变量,
要定义全局变量你只要把变量定义在
所有函数外部即可。
要注意的是,全局变量只对它定义位
置以下的函数可见。
#include
void f1();
void f2();
int y=100;
int main()
{
printf("%d\n\n",y);
//printf("%d\n",x);这不可以读x,x对main()不可见
f1();
f2();
return 0;
}
int x;
void f1()
{
x=200;
}
void f2()
{
printf("%d\n",x);
printf("%d\n",y);
}