Share via


fonctions intrinsèques de _InterlockedIncrement

[Cette documentation constitue un aperçu et peut faire l'objet de modifications avec les versions ultérieures. Blank topics are included as placeholders.]

Spécifique à Microsoft

Fournissez la prise en charge intrinsèque du compilateur de la fonction Win32 Windows SDK InterlockedIncrement .

long _InterlockedIncrement(
   long * lpAddend
);
long _InterlockedIncrement_acq(
   long * lpAddend
);
long _InterlockedIncrement_rel(
   long * lpAddend
);
short _InterlockedIncrement16(
   short * lpAddend
);
short _InterlockedIncrement16_acq(
   short * lpAddend
);
short _InterlockedIncrement16_rel(
   short * lpAddend
);
__int64 _InterlockedIncrement64(
   __int64 * lpAddend
);
__int64 _InterlockedIncrement64_acq(
   __int64 * lpAddend
);
__int64 _InterlockedIncrement64_rel(
   __int64 * lpAddend
);

Paramètres

  • [in, out] lpAddend
    Pointeur vers la variable à incrémenter.

Valeur de retour

Windows 98, Windows NT 4,0 et versions ultérieures : La valeur de retour est la valeur incrémentée résultant.

Windows 95, Windows NT 3,51 et antérieures : si le résultat de l'opération est zéro, la valeur de retour est zéro. Si le résultat de l'opération est inférieur à zéro, la valeur de retour est négative, mais elle n'est pas nécessairement égale au résultat. Si le résultat de l'opération est supérieur à zéro, la valeur de retour est positive, mais elle n'est pas nécessairement égale au résultat.

Configuration requise

Intrinsèque

Architecture

_InterlockedIncrement

x86, IPF, x64

_InterlockedIncrement_acq

IPF

_InterlockedIncrement_rel

IPF

_InterlockedIncrement16

x86, IPF, x64

_InterlockedIncrement16_acq

IPF

_InterlockedIncrement16_rel

IPF

_InterlockedIncrement64

IPF, x64

_InterlockedIncrement64_acq

IPF

_InterlockedIncrement64_rel

IPF

Fichier d'en-tête <intrin.h>

Notes

Il y a plusieurs variations sur _InterlockedIncrement qui varient en fonction de les types de données qu'ils impliquent et si le au processeur acquièrent ou sémantique de version est utilisée.

Pendant que la fonction d' _InterlockedIncrement traite les valeurs d'entiers 32 bits, _InterlockedIncrement16 traite les valeurs d'entiers 16 bits et _InterlockedIncrement64 traite les valeurs d'entiers 64 bits.

_InterlockedIncrement_acq, _InterlockedIncrement16_acq, et les fonctions intrinsèques d' _InterlockedIncrement64_acq sont identiques aux fonctions correspondantes sans le suffixe d' _acq sauf que l'opération est effectuée avec occupent la sémantique, ce qui est utile en écrivant une section critique.

_InterlockedIncrement_rel, _InterlockedIncrement16_rel, et la fonction intrinsèque d' _InterlockedIncrement64_rel sont identiques aux fonctions correspondantes sans le suffixe d' _rel sauf que l'opération est exécutée avec la sémantique de version, ce qui est utile en permettant une section critique.

La variable désignée par le paramètre d' lpAddend doit être alignée sur une limite de 32 bits ; sinon, cette fonction échoue sur les systèmes x86 multiprocesseur et tous les systèmes autre que x86.

Ces fonctions se comportent comme barrières de mémoire en lecture-écriture. Pour plus d'informations, consultez _ReadWriteBarrier.

La fonction Win32 est déclarée dans Wdm.h ou Ntddk.h.

Ces routines sont uniquement disponibles comme intrinsèques.

Exemple

Pour un exemple d'utilisation _InterlockedIncrement, consultez _InterlockedDecrement.

Voir aussi

Référence

intrinsèques du compilateur

Mots clés C++

Autres ressources

Conflicts with the x86 Compiler