Compartilhar via


_InterlockedIncrement funções intrínsecas

Fornece suporte intrínseco de compilador à função  InterlockedIncrement do SDK do Windows Win32. As funções intrínsecas _InterlockedIncrement são específicas da Microsoft.

Sintaxe

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

Parâmetros

lpAddend
[in, out] Ponteiro para a variável a ser incrementada.

Retornar valor

O valor retornado é o valor incrementado resultante.

Requisitos

Intrinsic Arquitetura Cabeçalho
_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>

Comentários

Há diversas variações em _InterlockedIncrement que têm base no tipo de dados que envolvem e se a semântica acquire ou release é usada.

Enquanto a função _InterlockedIncrement opera nos valores inteiros de 32 bits, _InterlockedIncrement16 opera em valores inteiros de 16 bits _InterlockedIncrement64 opera em valores inteiros de 64 bits.

Em plataformas ARM, use intrínsecos com os sufixos _acq e _rel para semântica de aquisição e liberação, como no início e no final de uma seção crítica. O intrínseco com um sufixo _nf ("sem cerca") não atua como uma barreira de memória.

A variável apontada para o parâmetro lpAddend deve estar alinhada em um limite de 32 bits; caso contrário, essa função falhará em sistemas de multiprocessor x86 e em qualquer sistema não x86. Para obter mais informações, confira align.

A função Win32 é declarada no Wdm.h ou Ntddk.h.

Essas rotinas somente estão disponíveis como intrínsecos.

Exemplo

Para obter uma amostra de como usar _InterlockedIncrement, consulte _InterlockedDecrement.

Confira também

Compilador intrínsecos
Palavras-chave
conflitos com o compilador x86