_InterlockedIncrement
fonctions intrinsèques
Fournissez la prise en charge intrinsèque du compilateur pour la fonction InterlockedIncrement du SDK Windows Win32. Les _InterlockedIncrement
fonctions intrinsèques sont spécifiques à Microsoft.
Syntaxe
long _InterlockedIncrement(
long volatile * lpAddend
);
long _InterlockedIncrement_acq(
long volatile * lpAddend
);
long _InterlockedIncrement_rel(
long volatile * lpAddend
);
long _InterlockedIncrement_nf(
long volatile * lpAddend
);
short _InterlockedIncrement16(
short volatile * lpAddend
);
short _InterlockedIncrement16_acq(
short volatile * lpAddend
);
short _InterlockedIncrement16_rel(
short volatile * lpAddend
);
short _InterlockedIncrement16_nf (
short volatile * lpAddend
);
__int64 _InterlockedIncrement64(
__int64 volatile * lpAddend
);
__int64 _InterlockedIncrement64_acq(
__int64 volatile * lpAddend
);
__int64 _InterlockedIncrement64_rel(
__int64 volatile * lpAddend
);
__int64 _InterlockedIncrement64_nf(
__int64 volatile * lpAddend
);
Paramètres
lpAddend
[in, out] Pointeur vers la variable à incrémenter.
Valeur retournée
La valeur de retour est la valeur incrémentée résultante.
Spécifications
Intrinsic | Architecture | En-tête |
---|---|---|
_InterlockedIncrement , _InterlockedIncrement16 |
x86, ARM, x64, ARM64 | <intrin.h> |
_InterlockedIncrement64 |
ARM, x64, ARM64 | <intrin.h> |
_InterlockedIncrement_acq , _InterlockedIncrement_rel , , _InterlockedIncrement16_acq _InterlockedIncrement_nf , _InterlockedIncrement16_rel , _InterlockedIncrement16_nf , _InterlockedIncrement64_acq , _InterlockedIncrement64_rel ,_InterlockedIncrement64_nf |
ARM, ARM64 | <intrin.h> |
Notes
Il existe plusieurs variantes de _InterlockedIncrement
qui varient selon les types de données qu’elles impliquent et l’utilisation d’une sémantique acquire ou release spécifique au processeur.
La fonction _InterlockedIncrement
opère sur des valeurs entières de 32 bits, _InterlockedIncrement16
sur des valeurs entières de 16 bits et _InterlockedIncrement64
sur des valeurs entières de 64 bits.
Sur les plateformes ARM, utilisez les fonctions intrinsèques avec des suffixes _acq
et _rel
si vous devez acquérir et libérer des éléments de la sémantique, comme le début et la fin d’une section critique. L’intrinsèque avec un _nf
suffixe (« sans clôture ») ne fait pas office de barrière de mémoire.
La variable vers laquelle pointe le paramètre lpAddend
doit être alignée sur une limite de 32 bits. Dans le cas contraire, cette fonction échoue sur les systèmes x86 multiprocesseurs et les systèmes autres que x86. Pour plus d’informations, consultez Aligner.
La fonction Win32 est déclarée dans Wdm.h
ou Ntddk.h
.
Ces routines sont disponibles seulement comme fonctions intrinsèques.
Exemple
Pour obtenir un exemple d’utilisation _InterlockedIncrement
, consultez _InterlockedDecrement.
Voir aussi
Intrinsèques du compilateur
Mots clés
Conflits avec le compilateur x86