被static关键字标记的变量和函数的含义
在C++中,static关键字可以用于变量和函数的声明,它具有不同的语义和用途:static变量
1.全局静态变量:当全局变量被声明为static时,其作用域被限制为声明它的文件,即使使用extern关键字也无法在其他文件中访问。这有助于隐藏全局变量,减少程序中的耦合度.
2.静态局部变量:在函数内部声明的static变量具有静态存储期,即它们在程序的整个生命周期内都存在,并且在第一次函数调用时初始化。此后,即使函数调用结束,静态局部变量的值也不会丢失,会保留到下一次函数调用.
3.静态成员变量:在类中声明的static变量属于整个类,而不是类的任何特定对象。这意味着类的所有对象共享同一份静态成员变量的副本,无论创建了多少对象.
static函数
1.静态全局函数:在全局命名空间中声明的static函数的链接属性被设置为内部链接,这意味着它们只能在定义它们的文件中可见,不能被其他文件所用。这有助于避免命名冲突,实现模块化设计.
2.静态类成员函数:在类中声明的static函数不依赖于类的任何特定实例,它们可以通过类名直接调用。这意味着它们可以在没有创建类对象的情况下调用,并且它们可以访问类的静态成员变量和其他静态成员函数.static关键字的使用可以帮助程序员更好地控制变量和函数的生命周期、作用域和访问级别,是C++编程中一个非常有用的特性。
参考:[1]:https://www.runoob.com/w3cnote/cpp-static-usage.html[2]:https://zhuanlan.zhihu.com/p/715605793[3]:https://blog.csdn.net/qq469236803/article/details/8767445[4]:https://zhuanlan.zhihu.com/p/626751091[5]:https://blog.csdn.net/m0_73726899/article/details/141336359[6]:https://zhuanlan.zhihu.com/p/623335955[7]:https://www.cnblogs.com/hellowooorld/p/11281654.html[8]:https://zhuanlan.zhihu.com/p/684186482[9]:https://blog.csdn.net/u010167037/article/details/22981275[10]:https://zhuanlan.zhihu.com/p/579883676
C,C++被static标记的变量和函数分别是什么意思
2025/11/24 17:05:06
来源:https://blog.csdn.net/ULTRAmanTAROACE/article/details/143465565
浏览:
次
关键词:C,C++被static标记的变量和函数分别是什么意思
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com
热文排行
- 电力物联网的电力监控系统
- `git restore` 和 `git checkout` 用于丢弃工作区的改动, `git switch` 和 `git checkout` 用来切换分支
- 《警世贤文》摘抄:处人篇、受恩篇、宽人篇、听劝篇、劝善篇(多读书、多看报、少吃零食多睡觉)
- Android显示系统(08)- OpenGL ES - 图片拉伸
- C++代码_让室友坑我
- Vmess协议是什么意思? VLESS与VMess有什么区别?
- 三元组抽取在实际应用中如何处理语义模糊性?
- 使用 Docker 在 Alpine Linux 下部署 Caddy 服务器
- Rust Web框架怎么选?
- WPS将文字文档朗读
最新新闻
- [星瞳科技]如何用OpenMV制造三子棋机器人?
- 基于FreeRTOS的STM32多功能手表
- 【科普】卷积、卷积核、池化、激活函数、全连接分别是什么?有什么用?
- Java+Vue+uniapp微信小程序校园自助打印系统(程序+论文+讲解+安装+调试+售后)
- MySQL—navicat创建数据库表
- LLMs之MemFree:MemFree的简介、安装和使用方法、案例应用之详细攻略
- 【ARM+Codesys 客户案例 】 基于RK3568/A40i/STM32+CODESYS在工厂自动化中的应用:铆接机
- 信号槽【QT】
- [自动化] 【八爪鱼】使用八爪鱼实现CSDN文章自动阅读脚本
- 精通Perl正则表达式修饰符:提升文本处理能力的艺术
推荐新闻
- [星瞳科技]如何用OpenMV制造三子棋机器人?
- 基于FreeRTOS的STM32多功能手表
- 【科普】卷积、卷积核、池化、激活函数、全连接分别是什么?有什么用?
- Java+Vue+uniapp微信小程序校园自助打印系统(程序+论文+讲解+安装+调试+售后)
- MySQL—navicat创建数据库表
- LLMs之MemFree:MemFree的简介、安装和使用方法、案例应用之详细攻略
- 【ARM+Codesys 客户案例 】 基于RK3568/A40i/STM32+CODESYS在工厂自动化中的应用:铆接机
- 信号槽【QT】
- [自动化] 【八爪鱼】使用八爪鱼实现CSDN文章自动阅读脚本
- 精通Perl正则表达式修饰符:提升文本处理能力的艺术
