Share via


/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

  1. Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.

  2. Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.

  3. Di Opsi tambahan, tambahkan /Zc:__STDC__. Pilih OK atau Terapkan untuk menyimpan perubahan Anda.

Baca juga

/Zc (Kesuaian)
/std (Tentukan versi standar bahasa)