1.全局变量的定义
全局变量存放在内存的静态存储区中。全局变量的生存期是整个程序的运行期。全局变量分为程序级全局变量、文件级全局变量。程序级全局变量又称为全局存储类型的全局变量;文件级全局变量又称为静态存储类型的全局变量。
1)程序级全局变量
程序级全局变量在定义时不加任何存储类型的声明。程序级全局变量的作用域是整个程序。一个C程序可以由多个文件组成,程序级全局变量是在程序的某个文件中定义的。当程序级全局变量在程序的某个文件中定义后,若要在程序的其他文件中使用它,只需用说明符extern声明,就可以在其他文件中使用。
2)文件级全局变量
定义时用说明符static进行声明的全局变量是文件级全局变量。文件级全局变量的作用域是它所在的程序文件。虽然它在程序的运行期间一直存在,但它不能被程序中的其他文件所使用。用static声明的全局变量是为了限制它的作用域,达到信息隐蔽的目的。
2.全局变量的声明(www.daowen.com)
全局变量的声明与定义含义不同。全局变量的定义只有一次,但声明可以有多次。声明全局变量采用extern说明符。对全局变量的声明既可以在函数的内部,也可以在函数的外部。全局变量应该在使用前声明,全局变量声明的一般形式如下:
例如:
在全局变量的作用域内(即从定义位置开始到文件的结束),可以省略对全局变量的声明,直接使用。但是,在下面两种情况下,必须通过声明来扩展全局变量的作用域。
(1)在同一个文件中,全局变量定义在后,但使用在前。在这种情况下,在使用该变量前需要对其进行声明。程序代码示例如下:
(2)程序由多个文件组成,多个文件要用到同一个全局变量。这时,可以在某个文件中定义该变量,而在其他文件中用extern对该全局变量进行声明。程序代码示例如下:
该程序由两个程序文件file1.c和file2.c组成,在file1.c中定义了全局变量y,在file2.c中对file1.c中定义的全局变量y进行了声明。程序运行时,file1.c中的main函数调用file2.c中的f1函数,f1函数按照“y=8*x*x-7*x+6;”计算y,由main函数输出y值。在该程序中,file1.c和file2.c的代码都很短,真实的文件代码不会这样短,该示例只是为了说明全局变量的声明。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。