/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

  1. Aprire la finestra di dialogo Pagine delle proprietà del progetto. Per informazioni dettagliate, vedere Impostare il compilatore e le proprietà di compilazione.

  2. Selezionare la pagina delle proprietà Proprietà di configurazione>C/C++>Riga di comando.

  3. 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)