名前空間
変種
操作

ATOMIC_VAR_INIT

提供: cppreference.com
< c‎ | atomic
ヘッダ <stdatomic.h> で定義
#define ATOMIC_VAR_INIT(value) /* unspecified */
(C11以上)
(C17で非推奨)

value と同じ型のアトミック変数を初期化するために使用できる式に展開されます。

このマクロを使用して (C17未満)明示的に初期化されていない自動記憶域期間のアトミックオブジェクトの初期値は不定です。 しかし静的またはスレッドローカル変数のデフォルト (ゼロ) 初期化は有効な値を生成します。

アトミック変数を初期化するとき、あらゆる並行的なアクセスはデータ競合です。 アトミック操作を通しても同様です (アドレスが直ちに memory_order_relaxed 操作で別のスレッドに渡された場合、これが発生し得ます)。

[編集] ノート

このマクロは C11 のアトミック型に対して設計された早期のドラフトの一部でした。 C11 で必要とされず、 C17 で非推奨になり、 C2x で削除される予定があります。

[編集] 参考文献

  • C11 standard (ISO/IEC 9899:2011):
  • 7.17.2.1 The ATOMIC_VAR_INIT macro (p: 274)

[編集] 関連項目

新しい atomic_flag を初期化します
(マクロ定数) [edit]