全局变量,extern,static

来源:互联网 发布:全国农产品价格数据库 编辑:程序博客网 时间:2024/05/05 05:16

1. extern

声明函数或全局变量的作用范围的关键字,其声明的函数和变量可以在本模块/其他模块中使用。注意:它是一个声明不是定义 !  全局变量的定义和声明一般情况下最好分开。

默认情况下全局变量只能在定义它的文件中使用,但如果在另一个文件中将这个变量声明为外部变量,那么这个变量的作用域将被扩展到另外一个文件中。

extern常用方法:

1)在cpp文件中定义全局变量(函数外部);

2)在对应的h文件中,声明外部变量extern。

      在需要用到这个全局变量的地方,include”**.h”即可


2. static

1)可以修饰:局部变量,全局变量。
静态全局变量作用域:在声明它的整个文件都是可见的,而在文件之外是不可见的

静态局部变量:它始终驻留在全局数据区,直到程序运行结束。但其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束

2)static变量的定义和声明是一起的,如果没有初始化,自动初始化为0;

3)extern和static不能同时修饰一个变量;

全局变量和全局静态变量的区别

1)全局变量默认是有外部链接性的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。

2)全局静态变量作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。


参考文献:

http://blog.csdn.net/c4501srsy/article/details/7751315
http://baike.baidu.com/link?url=KpqVJcVCLBE5Awvo1MC6lzl1cZMel22ks1YCFfq0C96i-9N6SOYXtI7TjAzi1k1PZOApPKZbaLoeSfZsw3onvK

0 0