_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.
Valor retornado
O valor retornado é o valor incrementado resultante.
Requisitos
Intrinsic | Arquitetura | Cabeçalho |
---|---|---|
_InterlockedIncrement , _InterlockedIncrement16 |
x86, ARM, x64, ARM64 | <intrinca.h> |
_InterlockedIncrement64 |
ARM, x64, ARM64 | <intrinca.h> |
_InterlockedIncrement_acq , _InterlockedIncrement_rel , _InterlockedIncrement_nf , _InterlockedIncrement16_acq , _InterlockedIncrement16_rel , _InterlockedIncrement16_nf _InterlockedIncrement64_acq _InterlockedIncrement64_rel ,_InterlockedIncrement64_nf |
ARM, ARM64 | <intrinca.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
Intrínsecos do compilador
Palavras-chave
conflitos com o compilador x86