一 概述
二 类型
三 语句
四 函数
五 数据
六 内存
七 代码
附录
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
1.2 生命周期
存储期限(storage duration)决定了对象的生命周期。
作用域(scope)和生命周期(lifetime)是不同概念。作用域指标识符(如变量名)有效范围,生命周期则是对象存活时间段。一个对象可被多个标识符引用,单个标识符并不能完全决定对象生命周期。
底层存储:
- 自动 (auto):初始值未定,仅定义所在块(
{scope}
)内有效。 - 静态 (static):自动初始化,进程运行期间有效。
- 线程 (thread):线程启动时初始化,线程运行期间有效。
- 分配 (alloc):手工分配和释放。
对象声明:
- auto :自动存储期限。
- register :提示编译器尽可能使用寄存器。
- static :无链接或内链接,静态存储期限。
- extern :外链接,静态存储期限。
- _Thread_local :线程局部对象。
静态局部变量的值保存在 .data/.bss,会在进程启动时初始化。实际函数内指令直接以地址读写,并未有任何初始化操作。其效果类似有限作用域的全局变量。
外链接符号可被其他模块(源文件)引用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论