_InterlockedIncrement
내장 함수
Win32 Windows SDK InterlockedIncrement 함수에 대한 컴파일러 내장 지원을 제공합니다. _InterlockedIncrement
내장 함수는 Microsoft 전용입니다.
구문
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
);
매개 변수
lpAddend
[in, out] 증분할 변수에 대한 포인터입니다.
반환 값
반환 값은 증가된 결과 값입니다.
요구 사항
Intrinsic | 아키텍처 | 헤더 |
---|---|---|
_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> |
설명
사용되는 데이터 형식과 프로세서별 획득 또는 해제 의미 체계에 따라 다른 _InterlockedIncrement
의 여러 변형이 있습니다.
_InterlockedIncrement
함수는 32비트 정수 값에 대해 작동하는 반면 _InterlockedIncrement16
은 16비트 정수 값에 대해, _InterlockedIncrement64
는 64비트 정수 값에 대해 작동합니다.
ARM 플랫폼에서는 임계 영역의 시작 및 끝과 같은 위치에서 의미 체계를 획득하고 해제하려면 _acq
및 _rel
접미사가 포함된 내장 함수를 사용합니다. ("no fence") 접미사가 있는 _nf
내장 함수는 메모리 장벽으로 작동하지 않습니다.
lpAddend
매개 변수가 가리키는 변수는 32비트 경계에 정렬되어야 합니다. 그렇지 않으면 다중 프로세서 x86 시스템과 x86이 아닌 시스템에서 이 함수가 실패합니다. 자세한 내용은 맞춤을 참조 하세요.
Win32 함수는 Wdm.h
또는 Ntddk.h
에서 선언됩니다.
이러한 루틴은 내장 함수로만 사용할 수 있습니다.
예시
사용 _InterlockedIncrement
방법에 대한 샘플은 _InterlockedDecrement 참조하세요.