Namespaces
Variants

atomic_init

From cppreference.net
Défini dans l'en-tête <stdatomic.h>
void atomic_init ( volatile A * obj, C desired ) ;
(depuis C11)

Initialise l'objet atomique construit par défaut obj avec la valeur desired . La fonction n'est pas atomique : un accès concurrent depuis un autre thread, même via une opération atomique, constitue une course aux données.

Ceci est une fonction générique définie pour tous les types d'objets atomiques A . L'argument est un pointeur vers un type atomique volatile pour accepter les adresses d'objets atomiques à la fois non volatiles et volatiles (par exemple E/S mappées en mémoire), et la sémantique volatile est préservée lors de l'application de cette opération aux objets atomiques volatiles. C est le type non atomique correspondant à A .

Il n'est pas spécifié si le nom d'une fonction générique est une macro ou un identifiant déclaré avec liaison externe. Si une définition de macro est supprimée pour accéder à une fonction réelle (par exemple mise entre parenthèses comme ( atomic_init ) ( ... ) ), ou si un programme définit un identifiant externe portant le nom d'une fonction générique, le comportement est indéfini.

Table des matières

Paramètres

obj - pointeur vers un objet atomique à initialiser
desired - valeur avec laquelle initialiser l'objet atomique

Valeur de retour

(aucun)

Notes

atomic_init est la seule manière d'initialiser les objets atomiques alloués dynamiquement. Par exemple :

_Atomic int *p = malloc(sizeof(_Atomic int));
atomic_init(p, 42);
**Note:** Le code C++ n'a pas été traduit car il se trouve dans des balises `
` et contient des termes spécifiques au C++ qui doivent être préservés selon les instructions. La structure HTML et les attributs ont été maintenus intacts.

Références

  • Norme C23 (ISO/IEC 9899:2024):
  • 7.17.2.2 La fonction générique atomic_init (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.17.2.2 La fonction générique atomic_init (p: 201)
  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.17.2.2 La fonction générique atomic_init (p: 274-275)

Voir aussi

(C11) (déprécié en C17) (supprimé en C23)
initialise un nouvel objet atomique
(macro fonction)
Documentation C++ pour atomic_init