atomic_init
|
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);
` 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
|
|