Bagikan melalui


_interlockedbittestandset fungsi intrinsik

Khusus Microsoft

Hasilkan instruksi untuk memeriksa bit b alamat a dan mengembalikan nilainya saat ini sebelum mengaturnya ke 1.

Sintaks

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

Parameter

a
[di] Penunjuk ke memori untuk diperiksa.

b
[di] Posisi bit untuk diuji.

Nilai hasil

Nilai bit pada posisi b sebelum diatur.

Persyaratan

Intrinsik Arsitektur Header
_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>

Keterangan

Pada prosesor x86 dan x64, intrinsik ini menggunakan lock bts instruksi untuk membaca dan mengatur bit yang ditentukan ke 1. Operasi ini atomik.

Pada prosesor ARM dan ARM64, gunakan intrinsik dengan _acq akhiran dan _rel untuk memperoleh dan melepaskan semantik, seperti di awal dan akhir bagian penting. Intrinsik ARM dengan _nf akhiran ("tanpa pagar") tidak bertindak sebagai pengralang memori.

Pada prosesor Intel yang mendukung instruksi Hardware Lock Elision (HLE), intrinsik dengan _HLEAcquire akhiran dan _HLERelease menyertakan petunjuk ke prosesor yang dapat mempercepat performa dengan menghilangkan langkah tulis kunci di perangkat keras. Jika intrinsik ini dipanggil pada prosesor yang tidak mendukung HLE, petunjuk diabaikan.

Rutinitas ini hanya tersedia sebagai intrinsik.

END Khusus Microsoft

Baca juga

Intrinsik pengkompilasi
Konflik dengan Pengkompilasi x86