/Zc:__STDC__
(Abilita __STDC__
macro)
L'opzione /Zc:__STDC__
del compilatore definisce la __STDC__
macro predefinita del preprocessore come 1 nel codice C.
Sintassi
/Zc:__STDC__
Osservazioni:
L'opzione /Zc:__STDC__
del compilatore implementa il comportamento conforme allo standard C per la macro del preprocessore, impostandolo su 1 durante la __STDC__
compilazione del codice C11 e C17.
L'opzione /Zc:__STDC__
è una novità di Visual Studio 2022 versione 17.2. Questa opzione è disattivata per impostazione predefinita, ma può essere abilitata in modo esplicito quando /std:c11
o /std:c17
è specificato. Non esiste alcuna versione negativa dell'opzione.
Questa opzione è una modifica che causa un'interruzione di origine. A causa del comportamento di UCRT, che non espone le funzioni POSIX quando __STDC__
è 1
, non è possibile definire questa macro per C per impostazione predefinita senza introdurre modifiche di rilievo alle versioni del linguaggio stabile.
Esempio
// 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__
*/
Per impostare questa opzione del compilatore in Visual Studio
Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.
Selezionare la pagina delle proprietà Proprietà di configurazione>C/C++>Riga di comando.
In Opzioni aggiuntive aggiungere
/Zc:__STDC__
. Scegliere OK o Applica per salvare le modifiche.
Vedi anche
/Zc
(Conformità)
/std
(Specificare la versione standard della lingua)