/Zc:__STDC__
(Aktifkan __STDC__
makro)
Opsi /Zc:__STDC__
pengkompilasi mendefinisikan makro praprosesor bawaan __STDC__
sebagai 1 dalam kode C.
Sintaks
/Zc:__STDC__
Keterangan
Opsi /Zc:__STDC__
kompilator mengimplementasikan perilaku sesuai Standar C untuk __STDC__
makro praprosesor, mengaturnya ke 1 saat mengkompilasi kode C11 dan C17.
Opsi /Zc:__STDC__
ini baru di Visual Studio 2022 versi 17.2. Opsi ini nonaktif secara default, tetapi dapat diaktifkan secara eksplisit saat /std:c11
atau /std:c17
ditentukan. Tidak ada versi negatif dari opsi ini.
Opsi ini adalah perubahan pemecahan sumber. Karena perilaku UCRT, yang tidak mengekspos fungsi POSIX ketika __STDC__
adalah 1
, tidak dimungkinkan untuk menentukan makro ini untuk C secara default tanpa memperkenalkan perubahan mencolok ke versi bahasa yang stabil.
Contoh
// test__STDC__.c
#include <io.h>
#include <fcntl.h>
#include <stdio.h>
int main() {
#if __STDC__
int f = _open("file.txt", _O_RDONLY);
_close(f);
#else
int f = open("file.txt", O_RDONLY);
close(f);
#endif
}
/* Command line behavior
C:\Temp>cl /EHsc /W4 /Zc:__STDC__ test__STDC__.c && test__STDC__
*/
Untuk mengatur opsi pengkompilasi ini di Visual Studio
Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.
Di Opsi tambahan, tambahkan
/Zc:__STDC__
. Pilih OK atau Terapkan untuk menyimpan perubahan Anda.