ATOMIC_VAR_INIT
來自 cppreference.com
在標頭檔案 <stdatomic.h> 中定義 |
||
#define ATOMIC_VAR_INIT(value) /* 未指定 */ |
(C11 起) (在 C17 中已廢棄) (C23 中已移除) |
|
展開為一個表示式,可用於初始化與 `value` 型別相同的原子變數。
未顯式初始化的自動儲存期原子物件的初始值是不確定的。然而,靜態和執行緒區域性變數的預設(零)初始化會產生一個有效值。
初始化原子變數時,任何併發訪問,即使透過原子操作,都是資料競爭(如果地址立即透過 memory_order_relaxed 操作傳遞給另一個執行緒,則可能會發生)。
目錄 |
[編輯] 注意
此宏是 C11 原子型別早期草案設計的一部分。在 C11 中不再需要它,並在 C17 中被廢棄,在 C23 中被移除。
[編輯] 缺陷報告
以下行為改變的缺陷報告被追溯地應用於以前釋出的 C 標準。
缺陷報告 | 應用於 | 釋出時的行為 | 正確的行為 |
---|---|---|---|
DR 485 | C11 | 該規範是冗餘的,並與核心語言相矛盾。 | 已修復 |
[編輯] 參考
- C17 標準 (ISO/IEC 9899:2018)
- 7.17.2.1 ATOMIC_VAR_INIT 宏 (p: 201)
- C11 標準 (ISO/IEC 9899:2011)
- 7.17.2.1 ATOMIC_VAR_INIT 宏 (p: 274)
[編輯] 另請參閱
(C11) |
初始化新的 atomic_flag (宏常量) |
C++ 文件,關於 ATOMIC_VAR_INIT
|