_InterlockedExchangePointer fungsi intrinsik
Khusus Microsoft
Melakukan operasi pertukaran atomik, yang menyalin alamat yang diteruskan sebagai argumen kedua ke dalam argumen pertama, dan mengembalikan alamat asli yang pertama.
Sintaks
void * _InterlockedExchangePointer(
void * volatile * Target,
void * Value
);
void * _InterlockedExchangePointer_acq(
void * volatile * Target,
void * Value
);
void * _InterlockedExchangePointer_rel(
void * volatile * Target,
void * Value
);
void * _InterlockedExchangePointer_nf(
void * volatile * Target,
void * Value
);
void * _InterlockedExchangePointer_HLEAcquire(
void * volatile * Target,
void * Value
);
void * _InterlockedExchangePointer_HLERelease(
void * volatile * Target,
void * Value
);
Parameter
Target
[masuk, keluar] Arahkan ke penunjuk ke nilai yang akan ditukar. Fungsi mengatur nilai ke Nilai dan mengembalikan nilai sebelumnya.
Nilai
[di] Nilai yang akan ditukar dengan nilai yang ditujukkan oleh Target.
Nilai hasil
Fungsi mengembalikan nilai awal yang ditujukkan oleh Target.
Persyaratan
Intrinsik | Arsitektur | Header |
---|---|---|
_InterlockedExchangePointer |
x86, ARM, x64, ARM64 | <intrin.h> |
_InterlockedExchangePointer_acq , _InterlockedExchangePointer_rel , _InterlockedExchangePointer_nf |
ARM, ARM64 | <intrin.h> |
_InterlockedExchangePointer_HLEAcquire , _InterlockedExchangePointer_HLERelease |
x64 | <immintrin.h> |
Pada arsitektur x86, _InterlockedExchangePointer
adalah makro yang memanggil _InterlockedExchange
.
Keterangan
Pada sistem 64-bit, parameternya adalah 64 bit dan harus diselaraskan pada batas 64-bit. Jika tidak, fungsi gagal. Pada sistem 32-bit, parameternya adalah 32 bit dan harus diselaraskan pada batas 32-bit. Untuk informasi selengkapnya, lihat meratakan.
Pada platform ARM, gunakan intrinsik dengan _acq
akhiran dan _rel
jika Anda perlu memperoleh dan melepaskan semantik, seperti di awal dan akhir bagian penting. Intrinsik dengan akhiran _nf
("tanpa pagar") tidak bertindak sebagai pengralang memori.
Pada platform 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 platform yang tidak mendukung HLE, petunjuk diabaikan.
Rutinitas ini hanya tersedia sebagai intrinsik.
END Khusus Microsoft
Baca juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk