/Zc:__STDC__
(Makro aktivieren __STDC__
)
Die /Zc:__STDC__
Compileroption definiert das integrierte Präprozessormakro als 1 in C-Code __STDC__
.
Syntax
/Zc:__STDC__
Hinweise
Die /Zc:__STDC__
Compileroption implementiert standard C-konformes Verhalten für das __STDC__
Präprozessormakro und legt es beim Kompilieren von C11- und C17-Code auf 1 fest.
Die /Zc:__STDC__
Option ist neu in Visual Studio 2022, Version 17.2. Diese Option ist standardmäßig deaktiviert, kann aber explizit aktiviert werden, wenn /std:c11
oder /std:c17
angegeben wird. Es gibt keine negative Version der Option.
Diese Option ist eine Quelländerung. Aufgrund des Verhaltens der UCRT, die POSIX-Funktionen nicht verfügbar macht, wenn __STDC__
1
ist, ist es nicht möglich, dieses Makro für C standardmäßig zu definieren, ohne Änderungen an den stabilen Sprachversionen einzuführen.
Beispiel
// 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__
*/
So legen Sie diese Compileroption in Visual Studio fest
Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).
Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.
Fügen Sie in
/Zc:__STDC__
zusätzlichen Optionen hinzu. Wählen Sie OK oder Übernehmen, um die Änderungen zu speichern.
Weitere Informationen
/Zc
(Konformität)
/std
(Standardversion für die Sprache festlegen)