Share via


/Zc:__STDC__ (Activer la __STDC__ macro)

L’option /Zc:__STDC__ du compilateur définit la macro de __STDC__ préprocesseur intégrée comme 1 dans le code C.

Syntaxe

/Zc:__STDC__

Notes

L’option /Zc:__STDC__ du compilateur implémente le comportement conforme standard C pour la macro de préprocesseur, la définissant sur 1 lors de la __STDC__ compilation du code C11 et C17.

L’option /Zc:__STDC__ est nouvelle dans Visual Studio 2022 version 17.2. Cette option est désactivée par défaut, mais peut être activée explicitement quand /std:c11 ou /std:c17 est spécifiée. Il n’existe aucune version négative de l’option.

Cette option est une modification cassante source. En raison du comportement de l’UCRT, qui n’expose pas les fonctions POSIX quand __STDC__ est 1, il n’est pas possible de définir cette macro pour C par défaut sans introduire de changements cassants dans les versions de langage stable.

Exemple

// 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__

*/

Pour définir cette option de compilateur dans Visual Studio

  1. Ouvrez la boîte de dialogue Pages de propriété du projet. Pour plus d’informations, consultez Définir le compilateur C++ et les propriétés de build dans Visual Studio.

  2. Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.

  3. Dans Options supplémentaires, ajoutez /Zc:__STDC__. Choisissez OK ou Appliquer pour enregistrer vos modifications.

Voir aussi

/Zc (Conformité)
/std (Spécifier la version du standard du langage)