/Zc:externC
(Используйте стандартные правила C++ extern "C"
Параметр /Zc:externC
компилятора сообщает компилятору соответствовать стандарту C++ и применять согласованные объявления параметров для функций, объявленных как extern "C"
.
Синтаксис
/Zc:externC
/Zc:externC-
Замечания
Параметр /Zc:externC
компилятора проверяет определения функций, объявленных с помощью extern "C"
.
Этот /Zc:externC
параметр доступен начиная с Visual Studio 2019 версии 16.3. Он отключен, если /permissive-
параметр не задан. В более ранних версиях Visual Studio и по умолчанию или /Zc:externC-
при указании Visual Studio не соответствует объявлениям extern "C"
функций. Параметр /permissive-
включает /Zc:externC
, поэтому он включен по умолчанию в проектах, использующих /std:c++20
или /std:c++latest
. Этот /Zc:externC
параметр должен прийти после /permissive-
параметра в командной строке.
Несогласованные extern "C"
объявления могут привести к ошибкам компилятора C2116 и C2733. В коде C++ может возникнуть ошибка, если вы объявляете extern "C"
функцию более одного раза и используете разные типы параметров, даже если типы имеют одинаковые определения. Параметр /Zc:externC-
смягчает эту проверку и не создает эти ошибки.
Установка параметра компилятора в Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.
Добавьте
/Zc:externC
или/Zc:externC-
в область "Дополнительные параметры".