Udostępnij za pośrednictwem


/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

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

  2. Wybierz stronę Właściwości>konfiguracji C/C++>Wiersza polecenia.

  3. W obszarze Dodatkowe opcje dodaj ./Zc:__STDC__ Wybierz przycisk OK lub Zastosuj , aby zapisać zmiany.

Zobacz też

/Zc (Zgodność)
/std (Określ wersję standardową języka)