/Zc:externC(使用标准 C++ extern "C" 规则)

/Zc:externC 编译器选项告诉编译器符合 C++ 标准,并为声明为 extern "C" 的函数强制执行一致的参数声明。

语法

/Zc:externC
/Zc:externC-

备注

/Zc:externC 编译器选项检查使用 extern "C" 声明的函数的定义。

从 Visual Studio 2019 版本 16.3 开始,/Zc:externC 选项可用。 未设置 /permissive- 选项时,此选项关闭。 在 Visual Studio 的早期版本中,默认情况下或如果指定了 /Zc:externC-,Visual Studio 允许匹配 extern "C" 函数的声明。 /permissive- 选项启用 /Zc:externC,因此在使用 /std:c++20/std:c++latest 的项目中默认启用。 /Zc:externC 选项必须位于命令行上的 /permissive- 选项之后。

不匹配 extern "C" 的声明可能会导致编译器错误 C2116C2733。 在 C++ 代码中,如果你多次声明一个 extern "C" 函数并使用不同的参数类型,即使这些类型具有相同的定义,也会发生错误。 /Zc:externC- 选项会放宽此检查,并且不会产生这些错误。

在 Visual Studio 中设置此编译器选项

  1. 打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性

  2. 选择“配置属性”>“C/C++”>“命令行”属性页

  3. /Zc:externC/Zc:externC- 添加到“附加选项:”窗格中。

另请参阅

/Zc(一致性)