/Zc:__STDC__
(Włącz __STDC__
makro)
Opcja /Zc:__STDC__
kompilatora definiuje wbudowane __STDC__
makro preprocesora jako 1 w kodzie C.
Składnia
/Zc:__STDC__
Uwagi
Opcja /Zc:__STDC__
kompilatora implementuje zachowanie zgodne ze standardem __STDC__
C dla makra preprocesora, ustawiając je na 1 podczas kompilowania kodu C11 i C17.
Opcja /Zc:__STDC__
jest nowa w programie Visual Studio 2022 w wersji 17.2. Ta opcja jest domyślnie wyłączona, ale można je jawnie włączyć, gdy /std:c11
jest określona lub /std:c17
jest określona. Nie ma negatywnej wersji opcji.
Ta opcja jest zmianą powodującą niezgodność źródła. Ze względu na zachowanie funkcji UCRT, która nie uwidacznia funkcji POSIX, gdy __STDC__
jest 1
, nie jest możliwe zdefiniowanie tego makra dla języka C domyślnie bez wprowadzania zmian powodujących niezgodność do stabilnych wersji językowych.
Przykład
// 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__
*/
Aby ustawić tę opcję kompilatora w programie Visual Studio
Otwórz okno dialogowe Strony właściwości projektu. Aby uzyskać szczegółowe informacje, zobacz Set C++ compiler and build properties in Visual Studio (Ustawianie właściwości kompilatora języka C++ i kompilowania w programie Visual Studio).
Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.
W obszarze Dodatkowe opcje dodaj .
/Zc:__STDC__
Wybierz przycisk OK lub Zastosuj , aby zapisać zmiany.