静态成员(static)VS extern

static与extern区别

静态成员(static)

  • 静态全局变量:

     限制作用域,只在定义该变量的源文件内有效
    

作用于全局变量时: 叫静态全局变量。表示该变量是私有的,只能在该文件使用。不能通过extern关键字对其引用。

  • 静态局部变量:

      改变局部变量的生存周期,使得该变量存在于定义直到程序运行结束;
      类内声明,类外初始化;
    

作用于局部变量时: 叫静态局部变量,在函数调用时,只有在该函数第一次调用时才对其分配空间和初始化。在函数调用结束时,不对该变量的内存进行释放,值仍然保留。这也是于自动变量的区别。
所有对象共享同一份数据

  • 静态成员变量

      所有对象共享同一个函数;
      静态成员函数不能声明为虚函数、const函数、volatile函数;
      静态成员函数只能访问静态成员变量
    

作用于函数时: 叫静态函数,表示该函数是私有的,只能在本文件中使用,不能通过extern关键字对其引用

extern

  • 本文件: 定义在本文件下面的全局变量,想要在上面使用时需要使用extern关键字对其声明
  • 其他文件:定义在其他文件的全局变量想要在本文件使用时,若该变量未被static修饰时可通过extern关键字在本文件对其声明。即可使用
posted @   邹木木  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示