簡體   English   中英

g ++線程局部變量是否遵循默認初始化規則?

[英]Do g++ thread-local variables follow default initialization rules?

使用g ++聲明函數靜態線程局部存儲:

void f() {
    static __thread somePodStruct thing;
    ...
}

我可以假設這個thing會被零初始化嗎?

根據GCC文件:

http://gcc.gnu.org/onlinedocs/gcc-3.3.1/gcc/Thread-Local.html

在C ++中,如果線程局部變量存在初始值設定項,則它必須是常量表達式,如ANSI / ISO C ++標准的5.19.2中所定義。

所以你可以明確地將它設置為零。
因此,為了安全起見,沒有任何假設的缺點,你可以得到零初始化,自己明確地做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM