/volatile (Interpretasi Kata Kunci volatil)
Menentukan bagaimana kata kunci volatil akan ditafsirkan.
Sintaks
/volatile:{iso|ms}
Argumen
/volatile:iso
Memilih semantik ketat volatile
seperti yang didefinisikan oleh bahasa C++ standar ISO. Semantik acquire/release tidak dijamin pada akses volatil. Jika kompilator menargetkan ARM (kecuali ARM64EC), ini adalah interpretasi default dari volatile
.
/volatile:ms
Memilih semantik yang diperluas volatile
Microsoft, yang menambahkan jaminan pengurutan memori di luar bahasa C++ standar ISO. Semantik acquire/release dijamin pada akses volatil. Namun, opsi ini juga memaksa pengkompilasi untuk menghasilkan hambatan memori perangkat keras, yang mungkin menambahkan overhead yang signifikan pada ARM dan arsitektur pengurutan memori lemah lainnya. Jika kompilator menargetkan ARM64EC atau platform non-ARM apa pun, ini adalah interpretasi default dari volatile
.
Keterangan
Kami sangat menyarankan Anda menggunakan /volatile:iso bersama dengan primitif sinkronisasi eksplisit dan intrinsik kompilator ketika Anda berhadapan dengan memori yang dibagikan di seluruh utas. Untuk informasi selengkapnya, lihat volatil.
Jika Anda mem-port kode yang ada atau mengubah opsi ini di tengah proyek, mungkin berguna untuk mengaktifkan peringatan C4746 untuk mengidentifikasi lokasi kode yang terpengaruh oleh perbedaan semantik.
Tidak ada #pragma
yang setara untuk mengontrol opsi ini.
Untuk mengatur opsi pengkompilasi /volatil di Visual Studio
Buka kotak dialog Halaman Properti untuk proyek. Untuk informasi selengkapnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.
Dalam kotak Opsi tambahan, tambahkan /volatile:iso atau /volatile:ms lalu pilih OK atau Terapkan untuk menyimpan perubahan Anda.
Lihat juga
mudahberubah
Opsi Pengkompilasi MSVC
Sintaks Baris Perintah Pengkompilasi MSVC