/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
Otevřete dialogové okno Stránky vlastností projektu. Podrobnosti najdete v tématu Nastavení kompilátoru C++ a vlastností sestavení v sadě Visual Studio.
Vyberte stránku vlastností příkazového řádku C/C++>Vlastnosti>konfigurace.
V dalších možnostech přidejte
/Zc:__STDC__
. Změny uložíte kliknutím na OK nebo Použít .