다음을 통해 공유


_InterlockedIncrement Intrinsic Functions

Microsoft 전용

Win32 Windows SDK InterlockedIncrement 함수에 대한 컴파일러 내장 지원을 제공합니다.

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

매개 변수

  • [in, out] lpAddend
    증가시킬 변수에 대한 포인터입니다.

반환 값

반환 값은 증가된 결과 값입니다.

요구 사항

내장 함수

아키텍처

Header

_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>

설명

사용되는 데이터 형식과 프로세서별 획득 또는 해제 의미 체계에 따라 다른 _InterlockedIncrement의 여러 변형이 있습니다.

_InterlockedIncrement 함수는 32비트 정수 값에 대해 작동하는 반면 _InterlockedIncrement16은 16비트 정수 값에 대해, _InterlockedIncrement64는 64비트 정수 값에 대해 작동합니다.

ARM 플랫폼에서는 임계 영역의 시작 및 끝과 같은 위치에서 의미 체계를 획득하고 해제하려면 _acq_rel 접미사가 포함된 내장 함수를 사용합니다. _nf("no fence"의 약어) 접미사가 포함된 내장 함수는 메모리 장벽으로 작동하지 않습니다.

lpAddend 매개 변수가 가리키는 변수는 32비트 경계에 정렬되어야 합니다. 그렇지 않으면 다중 프로세서 x86 시스템과 x86이 아닌 시스템에서 이 함수가 실패합니다. 자세한 내용은 align을 참조하세요.

Win32 함수는 Wdm.h 또는 Ntddk.h에서 선언됩니다.

이러한 루틴은 내장 함수로만 사용할 수 있습니다.

예제

_InterlockedIncrement를 사용하는 방법의 샘플은 _InterlockedDecrement를 참조하세요.

참고 항목

참조

컴파일러 내장 함수

C++ 키워드

x86 컴파일러와 충돌