Partager via


_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, _InterlockedIncrement_nf, _InterlockedIncrement16_acq, _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