Fonction InterlockedDecrement (winnt.h)

Décrémente (diminue d’un) la valeur de la variable 32 bits spécifiée en tant qu’opération atomique.

Pour fonctionner sur des valeurs 64 bits, utilisez la fonction InterlockedDecrement64 .

Syntaxe

LONG InterlockedDecrement(
  [in, out] LONG volatile *Addend
);

Paramètres

[in, out] Addend

Pointeur vers la variable à décrémenter.

Valeur retournée

La fonction retourne la valeur décrémentée résultante.

Remarques

La variable pointée vers par le paramètre Addend doit être alignée sur une limite 32 bits ; sinon, cette fonction se comportera de manière imprévisible sur les systèmes multiprocesseurs x86 et tous les systèmes non x86. Voir _aligned_malloc.

Les fonctions verrouillées fournissent un mécanisme simple pour synchroniser l’accès à une variable partagée par plusieurs threads. Cette fonction est atomique par rapport aux appels à d’autres fonctions verrouillées.

Cette fonction est implémentée à l’aide d’une intrinsèque du compilateur dans la mesure du possible. Pour plus d’informations, consultez le fichier d’en-tête WinBase.h et _InterlockedDecrement.

Cette fonction génère une barrière de mémoire complète (ou clôture) pour s’assurer que les opérations de mémoire sont effectuées dans l’ordre.

Systèmes itanium : Pour les applications critiques en matière de performances, utilisez plutôt InterlockedDecrementAcquire ou InterlockedDecrementRelease .

Note Cette fonction est prise en charge sur les systèmes basés sur Windows RT.
 

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winnt.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

Accès variable verrouillé

InterlockedDecrement16

InterlockedDecrement16Acquire

InterlockedDecrement16NoFence

InterlockedDecrement16Release

InterlockedDecrement64

InterlockedDecrementAcquire

InterlockedDecrementAcquire64

InterlockedDecrementNoFence

InterlockedDecrementNoFence64

InterlockedDecrementRelease

InterlockedDecrementRelease64

InterlockedIncrement

Fonctions de synchronisation