내장 함수 _InterlockedCompareExchangePointer
Microsoft 전용
Exchange
및 Destination
주소가 같으면 Comparand
주소에 Destination
주소를 저장하는 원자성 작업을 수행합니다.
구문
void * _InterlockedCompareExchangePointer (
void * volatile * Destination,
void * Exchange,
void * Comparand
);
void * _InterlockedCompareExchangePointer_acq (
void * volatile * Destination,
void * Exchange,
void * Comparand
);
void * _InterlockedCompareExchangePointer_HLEAcquire (
void * volatile * Destination,
void * Exchange,
void * Comparand
);
void * _InterlockedCompareExchangePointer_HLERelease (
void * volatile * Destination,
void * Exchange,
void * Comparand
);
void * _InterlockedCompareExchangePointer_nf (
void * volatile * Destination,
void * Exchange,
void * Comparand
);
void * _InterlockedCompareExchangePointer_np (
void * volatile * Destination,
void * Exchange,
void * Comparand
);
void * _InterlockedCompareExchangePointer_rel (
void * volatile * Destination,
void * Exchange,
void * Comparand
);
매개 변수
대상
[in, out] 대상 값에 대한 포인터에 대한 포인터입니다. 부호는 무시됩니다.
Exchange
[in] Exchange 포인터입니다. 부호는 무시됩니다.
비교 및 비교
[in] 대상과 비교할 포인터입니다. 부호는 무시됩니다.
반환 값
반환 값은 대상의 초기 값입니다.
요구 사항
Intrinsic | 아키텍처 | 헤더 |
---|---|---|
_InterlockedCompareExchangePointer |
x86, ARM, x64, ARM64 | <intrin.h> |
_InterlockedCompareExchangePointer_acq , , _InterlockedCompareExchangePointer_nf _InterlockedCompareExchangePointer_rel |
ARM, ARM64 | <iiintrin.h> |
_InterlockedCompareExchangePointer_HLEAcquire , _InterlockedCompareExchangePointer_HLERelease |
x86, x64 | <immintrin.h> |
설명
_InterlockedCompareExchangePointer
는 Destination
주소와 Comparand
주소의 원자성 비교를 수행합니다. Destination
주소가 Comparand
주소와 같으면 Exchange
으로 지정된 주소에 Destination
주소가 저장됩니다. 그렇지 않으면 작업이 수행되지 않습니다.
_InterlockedCompareExchangePointer
에서는 Win32 Windows SDK InterlockedCompareExchangePointer 함수에 대한 컴파일러 내장 지원을 제공합니다.
사용 _InterlockedCompareExchangePointer
방법의 예는 _InterlockedDecrement 참조하세요.
ARM 플랫폼에서는 임계 영역의 시작 및 끝과 같은 위치에서 의미 체계를 획득하고 해제하려면 _acq
및 _rel
접미사가 포함된 내장 함수를 사용합니다. ("no fence") 접미사가 있는 _nf
ARM 내장 함수는 메모리 장벽으로 작동하지 않습니다.
_np
("no prefetch"의 약어) 접미사가 포함된 내장 함수는 컴파일러가 가능한 프리페치 연산을 삽입하지 못하도록 차단합니다.
HLE(Hardware Lock Elision) 명령을 지원하는 Intel 플랫폼에서 _HLEAcquire
및 _HLERelease
접미사가 포함된 내장 함수는 하드웨어에서 잠금 쓰기 단계를 제거하여 성능을 향상시킬 수 있는 힌트를 프로세서에 포함합니다. HLE을 지원하지 않는 플랫폼에서 이러한 내장 함수를 호출하면 힌트가 무시됩니다.
이러한 루틴은 내장 함수로만 사용할 수 있습니다.
Microsoft 전용 종료