Поделиться через


/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

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.

  3. Добавьте /Zc:externC или /Zc:externC- в область "Дополнительные параметры".

См. также

/Zc (Соответствие)