/Zc:__STDC__
(Включить __STDC__
макрос)
Параметр /Zc:__STDC__
компилятора определяет встроенный __STDC__
макрос препроцессора как 1 в коде C.
Синтаксис
/Zc:__STDC__
Замечания
Параметр /Zc:__STDC__
компилятора реализует поведение, соответствующее стандарту C для __STDC__
макроса препроцессора, задав его значение 1 при компиляции кода C11 и C17.
Этот /Zc:__STDC__
параметр доступен в Visual Studio 2022 версии 17.2. Этот параметр отключен по умолчанию, но может быть включен явным образом при /std:c11
указании или /std:c17
указании. Нет отрицательной версии параметра.
Этот параметр является критическим изменением источника. Из-за поведения UCRT без предоставления функций POSIX, когда __STDC__
равно 1
, невозможно определить этот макрос для C по умолчанию без внесения критических изменений в стабильные языковые версии.
Пример
// 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__
*/
Установка параметра компилятора в Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.
В дополнительных параметрах добавьте
/Zc:__STDC__
. Нажмите кнопку "ОК" или "Применить", чтобы сохранить изменения.
См. также
/Zc
(Соответствие)
/std
(определение стандартной версии языка)