static 全局变量与普通的全局变量有什么区别?

浏览量:289
时间: 2023-09-09 16:44:19

static 全局变量与普通的全局变量有什么区别?static 局部变量和普通局部变量有什么 区别?static 函数与普通函数有什么区别?

    全局变量(外部变量)的说明之前再冠以 static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用, 因此可以避免在其它源文件中引起错误。
    从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。static 函数与普通函数作用域不同。仅在本文件。只在当前源文件中使用的函数应该说明为内部函数(static),内部函数应该在当前源文件中说明和定义。对于可在当前源文件以外使用的函数,应该在一个头文件中说明,要使用这些函数的源文件要包含这个头文件
static 全局变量与普通的全局变量有什么区别:

static 全局变量只初使化一次,防止在其他文件单元中被引用;
static 局部变量和普通局部变量有什么区别:

static 局部变量只被初始化一次,下一次依据上一次结果值;
static 函数与普通函数有什么区别:

static 函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
在高频下,金属表面上方哪个场量的大小约等于表面电流密度?

问题二:在高频下,金属表面上方哪个场量的大小约等于表面电流密度?a. 磁场b. 切向电场c. 法向电场d. 总电场答:最佳答案是“a”。在良导体的边界处,切向磁... 详情>>

2024-03-20 14:20:12
为什么要采用Linux内核来构建嵌入式操作系统?

内核本身小而且简单,易于理解,易于维护。各种特殊的模块(如文件系统等)、设备驱动乃至中断处理程序,都可以作为独立的进程开发,既简单又容易调试,并 且容易在其他环... 详情>>

2024-03-27 11:29:34
一套比较经典的PCB设计工程面试题

一套比较经典的PCB设计工程面试题一、填空1.PCB上的互连线按类型可分为 _微带线_和带状线2引起串扰的两个因素是_容性耦合和_感性耦合3.EMI的三要素:发... 详情>>

2023-11-27 10:21:08
咱们工程师跳槽,HR 就喜欢听这些离职原因!一起看看怎么回答才比较好

面试干货,HR 就喜欢听这样的离职原因。不让老实人别再吃亏!分享如何回答: 你为什么离开上一家公司?错误回答:薪水太低了满分回答:过去2年,在公司和领导的帮助下... 详情>>

2023-09-12 21:45:10
NAND与NOR的区别

⼀般来说,快闪记忆体可分为两⼤规格,⼀个是NAND, ⼀个是NOR。**简单来说,NAND⼀般以存储数据为 主,晶片容量⼤,容量可以达到2Gb甚⾄更⼤,==NA... 详情>>

2024-03-15 17:10:12