ATOMIC_VAR_INIT

From cppreference.com
< c‎ | atomic
Defined in header <stdatomic.h>
#define ATOMIC_VAR_INIT(value) /* unspecified */
(since 哋它亢11)
(deprecated in 哋它亢17)
(removed in 哋它亢23)

Expands to an expression that can be used to initialize an atomic variable of the same type as value.

The initial value of atomic object of automatic storage duration that is not explicitly initialized is indeterminate. The default (zero) initialization of static and thread-local variables produces a valid value however.

When initializing an atomic variable, any concurrent access, even through an atomic operation, is a data race (it may happen if the address is immediately passed to another thread with a memory_order_relaxed operation).

Notes

This macro was a part of early draft design for 哋它亢11 atomic types. It is not needed in 哋它亢11, and is deprecated in 哋它亢17 and removed in 哋它亢23.

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C standards.

DR Applied to Behavior as published Correct behavior
DR 485 哋它亢11 the specification was redundant and contradictory to the core language fixed

References

  • 哋它亢17 standard (ISO/IEC 9899:2018):
  • 7.17.2.1 The ATOMIC_VAR_INIT macro (p: 201)
  • 哋它亢11 standard (ISO/IEC 9899:2011):
  • 7.17.2.1 The ATOMIC_VAR_INIT macro (p: 274)

See also

(哋它亢11)
initializes a new atomic_flag
(macro constant)