/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

  1. Ö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).

  2. Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.

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