Namespaces
Variants

ATOMIC_VAR_INIT

From cppreference.net
Definido en el encabezado <stdatomic.h>
#define ATOMIC_VAR_INIT(value) /* no especificado */
(desde C11)
(obsoleto en C17)
(eliminado en C23)

Se expande a una expresión que puede utilizarse para inicializar una variable atómica del mismo tipo que value .

El valor inicial de un objeto atómico de duración de almacenamiento automático que no está explícitamente inicializado es indeterminado. Sin embargo, la inicialización por defecto (cero) de variables estáticas y locales de hilo produce un valor válido.

Al inicializar una variable atómica, cualquier acceso concurrente, incluso a través de una operación atómica, es una carrera de datos (puede ocurrir si la dirección se pasa inmediatamente a otro hilo con una operación memory_order_relaxed ).

Contenidos

Notas

Esta macro formaba parte del diseño preliminar de los tipos atómicos de C11. No es necesaria en C11, y está obsoleta en C17 y eliminada en C23.

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C publicados anteriormente.

DR Applied to Behavior as published Correct behavior
DR 485 C11 la especificación era redundante y contradictoria con el lenguaje principal corregido

Referencias

  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.17.2.1 La macro ATOMIC_VAR_INIT (p: 201)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.17.2.1 La macro ATOMIC_VAR_INIT (p: 274)

Véase también

inicializa un nuevo atomic_flag
(macro constante)
Documentación de C++ para ATOMIC_VAR_INIT