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

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

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

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

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

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

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

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

简单来说,输入时钟的存在是作为“参考源”。锁相环不是为了单纯产⽣同频同相信号,⽽是⼀般集成进某种“频 率综合电路”,产⽣⼀个不同频,但锁相的信号。 有点绕,打个... 详情>>

2023-11-21 11:33:05
为什么需要交叉编译?

有时是因为⽬的平台上不允许或不能够安装我们所需要的编译器,⽽我们⼜需要这个编译器的某些特征;有时 是因为⽬的平台上的资源贫乏,⽆法运⾏我们所需要编译器;有时⼜是... 详情>>

2023-10-25 10:02:12
内存与闪存区别

1、性质不同闪存,⼀种电⼦式可清除程序化只读存储器的形式,允许在操作中被多次擦或写的存储器。 内存为计算机中重要的部件之⼀,它是外存与CPU进⾏沟通的桥梁。计算... 详情>>

2024-03-15 17:17:18
为什么会采⽤三次握⼿,若采⽤⼆次握⼿可以吗?

采⽤三次握⼿是为了防⽌失效的连接请求报文段再次传到服务器,因⽽产⽣错误。如果由于⽹络不稳定,虽然 客户端以前发送的连接请求以到达服务⽅,但服务⽅的同意连接的应答... 详情>>

2024-01-30 15:48:54
PCB工程师面试模拟问答参考

面试官:画过PCB板吗?我:画过,4层,2层。面试官:当时为什么选择4层板?我:4层板中间两层专门做电源层和地层,能够大大减小电源和地之间的电感,电源层和地层之... 详情>>

2023-11-27 10:35:55
开班信息