C++ 全局变量和全局静态变量有什么区别呢?

为什么我在一个文件define中定义的全局静态变量在其他的文件中include“define”后,就直接使用吗,不是说不能使用吗?code(define.h):const... 为什么我在一个文件define中定义的全局静态变量在其他的文件中include “define”后,就直接使用吗,不是说不能使用吗?
code(define .h):
const char* TEST1 = "TEST1";
static const char* TEST22 = "TEST22";
依据是——————
2、全局静态变量是显示用static修饰的全局变量,作用域是所在的文件,其他的文件即使用extern声明也不能使用。

??????????为什么呢?
纠结啊~~
展开
 我来答
无名小卒udl
高粉答主

2018-04-04 · 每个回答都超有意思的
知道大有可为答主
回答量:187
采纳率:100%
帮助的人:5.9万
展开全部

1. 全局变量的作用域是整个项目,它只需要在一个源文件中定义就可以作用于所有的源文件,其它不包括全局变量定义的文件需要用extern关键字再次声明这个全局变量。

2. 全局变量、静态全局变量、静态局部变量都是在静态存储区(全局数据区)中分配空间的,而局部变量是在栈上分配空间的。

3. 全局变量、静态变量的生命期和程序生命期是一样的,在程序结束之后操作系统会回收空间。

  • 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变(immutable)的。

  • 在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。

Storm代理
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I... 点击进入详情页
本回答由Storm代理提供
huanglenzhi
推荐于2017-09-12 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517194
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  C++ 全局变量和全局静态变量的根本区别还是作用域的区别。
  1、全局变量是不显示用static修饰的全局变量,但全局变量默认是静态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量;
  2、全局静态变量是显示用static修饰的全局变量,作用域是所在的文件,其他的文件即使用extern声明也不能使用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晋尔容qb
推荐于2017-10-06 · 超过10用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:33.4万
展开全部
1、全局变量是不显示用static修饰的全局变量,但全局变量默认是静态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。
2、全局静态变量是显示用static修饰的全局变量,作用域是所在的文件,其他的文件即使用extern声明也不能使用。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-12-09
展开全部
你理解的基本正确!

局部变量空间,就是堆栈空间,也就是栈空间。
从局部变量声明的时候,它就在堆栈空间了,而不是调用函数的时候,才让它入栈的。
堆和栈是两码事情,通常我们所说的堆栈,是指栈。

堆,是一种结构,是从全局区,分配一段区间,然后由一种内存分配算法进行管理。
另外,还有一个区,是常量区。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jdq_37
2010-12-08 · TA获得超过996个赞
知道小有建树答主
回答量:658
采纳率:0%
帮助的人:953万
展开全部
作用域不同。
全局静态变量的作用域是文件,离开了所在文件就不认了,而全局变量是整个工程内可见的。
全局变量,在非定义所在文件使用的时候,只要用extern声明一下即可使用,静态的就不行了。
这些都是C语言的语法规则,记住了就行了,我们小人物只有去适应,以后你厉害了,可以参与C语言规则的修订,把它改了,就不纠结了!嘻嘻。
祝你好运!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式