静态全局变量和全局变量有什么区别

同上... 同上 展开
 我来答
帐号已注销
高粉答主

2018-06-01 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:341
采纳率:50%
帮助的人:22万
展开全部

全局变量是不显式用static修饰的全局变量,但全局变量默认是动态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。全局静态变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。

拓展资料

全局变量也称为外部变量,它是在 函数外部定义的变量。 它不属于哪一个 函数,它属于一个源程序文件。其作用域是从定义该变量的位置开始至源文件结束。

全局变量是在所有函数体的外部定义的,程序的所在部分(甚至其它文件中的代码)都可以使用。全局变量不受作用域的影响(也就是说,全局变量的生命期一直到程序的结束)。如果在一个文件中使用 extern关键字来声明另一个文件中存在的全局变量,那么这个文件可以使用这个数据。

在全局变量前加一个 static,使该变量只在这个源文件中可用,称之为全局静态变量,全局静态变量就是静态全局变量。

在多文件组成的程序里,全局变量与全局静态变量是不同的。在某一层次声明的变量的作用域就终止于该变量所在层次的末尾。唯一的区别是全局静态变量使得该变量成为定义该变量的源文件所独享。如果在一个文件中使用 extern关键字来声明另一个文件中存在的静态全局变量,这个文件也不能够使用这个数据。

Storm代理
2023-08-29 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
百度网友a3c6f5c
2018-05-30 · TA获得超过5050个赞
知道答主
回答量:28
采纳率:0%
帮助的人:4189
展开全部

全局变量与全局静态变量的区别:

1.若程序由一个源文件构成时,全局变量与全局静态变量没有区别。

2.若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。

3.具有外部链接的静态,可以在所有源文件里调用,除了本文件,其他文件可以通过extern的方式引用。

拓展资料:

全局变量:是编程术语中的一种,源自于变量之分。变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。

全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。

静态全局变量的作用:

1.不必担心其它源文件使用相同变量名,彼此相互独立。

2.在某源文件中定义的静态全局变量不能被其他源文件使用或修改。

3.只能在本文件中使用。具有内部链接的静态,不允许在其他文件里调用。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
amen_liux
2010-02-20 · TA获得超过1036个赞
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
全局变量与全局静态变量的区别:
(a)若程序由一个源文件构成时,全局变量与全局静态变量没有区别。
(b)若程序由多个源文件构成时,全局变量与全局静态变量不同:全局静态变量使得该变量成为定义该变量的源文件所独享,即:全局静态变量对组成该程序的其它源文件是无效的。
(c)具有外部链接的静态;可以在所有源文件里调用;除了本文件,其他文件可以通过extern的方式引用;

静态全局变量的作用:
(a)不必担心其它源文件使用相同变量名,彼此相互独立。
(b)在某源文件中定义的静态全局变量不能被其他源文件使用或修改。
(c) 只能在本文件中使用!具有内部链接的静态;不允许在其他文件里调用;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wei522688662
2015-04-22 · 超过27用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:58.5万
展开全部
楼上说的很好,但是我再补充点,就我个人理解:
全局变量其实也是代码,所以他是保存在PE文件的代码段中的,而静态变量是保存在数据段中的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Alison刘淑婷
高粉答主

2018-05-27 · 说的都是干货,快来关注
知道小有建树答主
回答量:170
采纳率:82%
帮助的人:4.8万
展开全部
在全局变量前加一个static,使该变量只在这个源文件中可用,称之为全局静态变量,全局静态变量就是静态全局变量。
1.全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件。其作用域是从定义该变量的位置开始至源文件结束。
2.全局变量是在所有函数体的外部定义的,程序的所在部分(甚至其它文件中的代码)都可以使用。全局变量不受作用域的影响(也就是说,全局变量的生命期一直到程序的结束)。如果在一个文件中使用extern关键字来声明另一个文件中存在的全局变量,那么这个文件可以使用这个数据。

3.在全局变量前加一个static,使该变量只在这个源文件中可用,称之为全局静态变量,全局静态变量就是静态全局变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式