首页 > 其他 > 详细

static 和 普通的全局变量有什么不同。它在类里面又有什么特点

时间:2019-12-12 20:58:43      阅读:109      评论:0      收藏:0      [点我收藏+]

static全局变量  与  普通的全局变量  区别:  

  1、作用域不同:static全局变量 的作用域  为 定义该变量的源文件 ,也就是只能被该文件中的函数公用,从而避免在其他源文件中引起错误。称为文件作用域。

  2、static全局变量在编译时初始化,也就是在main()函数之前初始化并且仅能初始化一次。

相同点:

  1、静态储存方式:被放在程序的静态数据存储区(全局可见)中,这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它们与堆变量、堆变量的区别。而局部变量在栈里分配空间

 

总结:

全局变量改变为静态变量后是改变了它的作用域,限制了它的使用范围

 

static函数和普通函数区别:
区别
  1.文件作用域:普通函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。好处:其他文件中可以定义相同名字的函数,不会发生冲突。
  2.普通函数在C++类中编译后带一个隐藏的this参数,而static函数不带。

static 和 普通的全局变量有什么不同。它在类里面又有什么特点

原文:https://www.cnblogs.com/reflecter/p/12031365.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!