您的位置:首页 > 其它

静态全局变量

2015-12-14 18:17 211 查看
C++ 全局变量和全局静态变量的根本区别还是作用域的区别。

  1、全局变量是不显示用static修饰的全局变量,但全局变量默认是静态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量;

  2、全局静态变量是显示用static修饰的全局变量,作用域是所在的文件,其他的文件即使用extern声明也不能使用。

全局变量,作用域是整个程序,若某一局部重新定义这个量,则全局变量作用域是除这个局部外的整个程序。它的生命期与程序生命期一样长。

静态变量保存在静态存储区,它的生命期与程序生命期相同。例如,某一子程序(子函数)里定义了一个静态量,当程序执行退出该子程序时,这个量仍被保留,其它非静态量的存储单元则被释放。也就是说,非静态量的生命期与子程序的生命期相同,进子程序,分配单元,退出则取消,上次调用子程序时非静态量消失,静态量却能保留上次调用的结果。

相同 -- 生命期与程序生命期相同
不同 -- 作用域不同
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: