首页 > 后端开发 > C++ > thread_local 变量在块作用域中是隐式静态的吗?

thread_local 变量在块作用域中是隐式静态的吗?

Susan Sarandon
发布: 2024-11-02 03:35:02
原创
466 人浏览过

Are thread_local Variables Implicitly Static in Block Scope?

使用 thread_local 声明的变量会自动静态吗?

下面的代码段乍一看是相同的:

<code class="cpp">void f() {
    thread_local vector<int> V;
    // ...
}

void f() {
    static thread_local vector<int> V;
    // ...
}</code>
登录后复制

然而,C 标准揭示了一个微妙的差异。当定义具有块作用域的 thread_local 变量时,如果没有明确声明,则隐含静态存储类说明符。这意味着第一个代码段与第二个代码段等效。

尽管它们的定义相似,但 static 和 thread_local 变量有显着差异。具有静态存储持续时间的变量与整个程序相关联,而thread_local变量与各个线程相关联。每个线程都有自己独特的对象或与 thread_local 变量关联的引用。

以上是thread_local 变量在块作用域中是隐式静态的吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板