/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
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.
Sélectionnez la page de propriétés Propriétés de configuration>C/C++>Ligne de commande.
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)