[英]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.