Sdílet prostřednictvím


/Zc:__STDC__ (Povolit __STDC__ makro)

Možnost /Zc:__STDC__ kompilátoru definuje předdefinované __STDC__ makro preprocesoru jako 1 v kódu jazyka C.

Syntaxe

/Zc:__STDC__

Poznámky

Možnost /Zc:__STDC__ kompilátoru implementuje standardní chování jazyka C odpovídající makru preprocesoru __STDC__ a při kompilaci kódu C11 a C17 ho nastaví na 1.

Tato /Zc:__STDC__ možnost je nová v sadě Visual Studio 2022 verze 17.2. Tato možnost je ve výchozím nastavení vypnutá, ale je možné ji explicitně povolit, pokud /std:c11 je zadána./std:c17 Neexistuje žádná záporná verze možnosti.

Tato možnost je zásadní změnou zdroje. Vzhledem k chování UCRT, který nezpřístupňuje funkce POSIX, pokud __STDC__ je 1, není možné definovat toto makro pro jazyk C ve výchozím nastavení bez zavedení zásadních změn ve stabilních jazykových verzích.

Příklad

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

*/

Nastavení této možnosti kompilátoru v sadě Visual Studio

  1. Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.

  2. Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.

  3. V dalších možnostech přidejte /Zc:__STDC__. Změny uložíte kliknutím na OK nebo Použít .

Viz také

/Zc (Shoda)
/std (Určení standardní verze jazyka)