C++ 存储持续性、作用域、链接性

C++ 存储持续性(存储周期)、作用域、链接性

  • 自动存储持续性 automatic在函数定义中声明的变量(包括函数参数)的存储持续性为自动的。它们在程序开始执行其所属的函数或代码块时被创建,在执行完函数或代码块时,它们使用的内存被释放。C++ 有两种存储持续性为自动的变量。
  • 静态存储持续性 static:在函数定义外定义的变量和使用关键字 static 定义的变量的存储持续性都为静态。它们在程序整个运行过程中都存在。C++ 有3种存储持续性为静态的变量。
  • 线程存储持续(C++11) thread:当前,多核处理器很常见,这些 CPU 可同时处理多个执行任务。这让程序能够将计算放在可并行处理的不同线程中。如果变量是使用关键字 thread_ local 声明的 ,则其生命周期与所属的线程一样长。
  • 动态存储持续性 dynamic:用 new 运算符分配的内存将一直存在, 直到使用 delete 运算符将其释放或程序结束为止。这种内存的存储持续性为动态,有时被称为自由存储( free store )或堆( heap )。

C++(一)——存储持续性、作用域、链接性_lkw23333的博客-CSDN博客

thread_local 是 C++11 引入的新特性,是一个关键字,用于修饰变量。
在使用时需要加入头文件:#include< thread>
thread_local 关键字和 static、extern 关键字在使用上是不冲突的,例如:thread_local static a;
thread_local 主要是用来修饰变量,修饰变量的种类有以下四种:

  • 全局变量
  • 局部变量
  • 类对象
  • 类成员变量

thread_local 声明的变量存储在线程开始时分配,线程结束时销毁。每一个 thread_local 变量在线程中有独立实体,各变量间互相不干扰。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值