请各位专家指点:静态全局变量这句话什么意思?
c++吧
全部回复
仅看楼主
level 3
wwacdroot 楼主
在书上看到,自学没老师问,只能请教吧里的各位专家:
1、静态全局变量定义中的static可以省略。。。。
2、。。。。
3、用static定义的静态全局变量只能被本文件引用,而不能被其他文件引用。
第3点,书中特别强调是用static定义的只能在本文件引用,还有不是用static定义的吗?
因为后面有讲到extern,它是不是想表示静态全局变量要给其他文件引用,不要加static,要用extern,这两个单词只能选一个?
2023年05月18日 08点05分 1
level 7
没有static限制的全局变量链接性是静态外部链接,可以在文件外用,但是得用extern声明,extern指出你这个变量是在别的文件中定义的;有static限制的全局变量链接性是静态内部链接,说明你这个变量只能在内部使用,即当前文件
2023年05月18日 08点05分 2
level 2
楼上说的对,不过要注意一个点,现代c++的规范中提倡不再使用extern导出全局变量,而是直接include定义全局变量的头文件
2023年05月18日 08点05分 3
level 6
全局变量本身存储在静态数据区
局部变量在栈数据区
static 局部变量 会存储在静态数据区只在作用域内可访问
static 全局变量 还在静态区,只在本文件和包含本文件的文件内有效
extern 全局变量还在静态区,但是其它文件内有效
2023年05月18日 09点05分 4
level 8
什么书,推荐一下
2023年05月31日 14点05分 5
1