다음을 통해 공유


내장 함수 _interlockedbittestandset

Microsoft 전용

주소를 1로 설정하기 전에 주소 a 의 비트를 b 검사하고 현재 값을 반환하는 명령을 생성합니다.

구문

unsigned char _interlockedbittestandset(
   long *a,
   long b
);
unsigned char _interlockedbittestandset_acq(
   long *a,
   long b
);
unsigned char _interlockedbittestandset_HLEAcquire(
   long *a,
   long b
);
unsigned char _interlockedbittestandset_HLERelease(
   long *a,
   long b
);
unsigned char _interlockedbittestandset_nf(
   long *a,
   long b
);
unsigned char _interlockedbittestandset_rel(
   long *a,
   long b
);
unsigned char _interlockedbittestandset64(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandset64_acq(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandset64_nf(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandset64_rel(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandset64_HLEAcquire(
   __int64 *a,
   __int64 b
);
unsigned char _interlockedbittestandset64_HLERelease(
   __int64 *a,
   __int64 b
);

매개 변수

a
[in] 검사할 메모리에 대한 포인터입니다.

b
[in] 테스트할 비트 위치입니다.

반환 값

설정하기 전의 위치에 b 있는 비트의 값입니다.

요구 사항

Intrinsic 아키텍처 헤더
_interlockedbittestandset x86, ARM, x64, ARM64 <intrin.h>
_interlockedbittestandset_acq, , _interlockedbittestandset_nf_interlockedbittestandset_rel ARM, ARM64 <intrin.h>
_interlockedbittestandset64_acq, , _interlockedbittestandset64_nf_interlockedbittestandset64_rel ARM64 <intrin.h>
_interlockedbittestandset_HLEAcquire, _interlockedbittestandset_HLERelease x86, x64 <immintrin.h>
_interlockedbittestandset64 x64, ARM64 <intrin.h>
_interlockedbittestandset64_HLEAcquire, _interlockedbittestandset64_HLERelease X64 <immintrin.h>

설명

x86 및 x64 프로세서에서 이러한 내장 함수는 명령을 사용하여 lock bts 지정된 비트를 읽고 1로 설정합니다. 이 작업은 원자성 작업입니다.

ARM 및 ARM64 프로세서에서 중요한 섹션의 시작 및 끝 부분과 _rel 같은 의미 체계를 획득하고 해제하기 위해 내장 _acq 함수와 접미사를 사용합니다. ("no fence") 접미사가 있는 _nf ARM 내장 함수는 메모리 장벽으로 작동하지 않습니다.

HLE(Hardware Lock Elision) 명령을 지원하는 Intel 프로세서에서 _HLEAcquire_HLERelease 접미사가 포함된 내장 함수는 하드웨어에서 잠금 쓰기 단계를 제거하여 성능을 향상시킬 수 있는 힌트를 프로세서에 포함합니다. HLE을 지원하지 않는 프로세서에서 이러한 내장 함수를 호출하면 힌트가 무시됩니다.

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

Microsoft 전용 종료

참고 항목

컴파일러 내장 함수
x86 컴파일러와 충돌