Funções intrínsecas _InterlockedIncrement
Específico da Microsoft
Provide compiler intrinsic support for the Win32 Windows SDK InterlockedIncrement function.
long _InterlockedIncrement(
long * lpAddend
);
long _InterlockedIncrement_acq(
long * lpAddend
);
long _InterlockedIncrement_rel(
long * lpAddend
);
long _InterlockedIncrement_nf(
long * lpAddend
);
short _InterlockedIncrement16(
short * lpAddend
);
short _InterlockedIncrement16_acq(
short * lpAddend
);
short _InterlockedIncrement16_rel(
short * lpAddend
);
short _InterlockedIncrement16_nf (
short * lpAddend
);
__int64 _InterlockedIncrement64(
__int64 * lpAddend
);
__int64 _InterlockedIncrement64_acq(
__int64 * lpAddend
);
__int64 _InterlockedIncrement64_rel(
__int64 * lpAddend
);
__int64 _InterlockedIncrement64_nf(
__int64 * lpAddend
);
Parâmetros
- [in, out] lpAddend
Ponteiro para a variável a ser incrementada.
Valor de retorno
O valor retornado é o valor incrementado resultante.
Requisitos
Intrínseco |
Arquitetura |
Cabeçalho |
---|---|---|
_InterlockedIncrement, _InterlockedIncrement16, _InterlockedIncrement64 |
x86, ARM, x64 |
<intrin.h> |
_InterlockedIncrement_acq, _InterlockedIncrement_rel, _InterlockedIncrement_nf, _InterlockedIncrement16_acq, _InterlockedIncrement16_rel, _InterlockedIncrement16_nf, _InterlockedIncrement64_acq, _InterlockedIncrement64_rel, _InterlockedIncrement64_nf |
ARM |
<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 ("no fence") não funciona 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, consulte alinhar.
A função Win32 é declarada no Wdm.h ou Ntddk.h.
Essas rotinas somente estão disponíveis como intrínsecos.
Exemplo
Para obter um exemplo de como usar _InterlockedIncrement, consulte _InterlockedDecrement.