编译器错误 C2733

无法重载具有“C”链接的函数

使用 extern "C" 链接声明了多个重载函数。 使用 "C" 链接时,只有指定函数的一种形式是外部的。 由于重载函数具有相同的未修饰名,因此不能与 C 程序一起使用。

由于 Visual Studio 2019 中的一致性更改,升级后可能会出现此错误。 从 Visual Studio 2019 版本 16.3 开始,/Zc:externC- 编译器选项会放宽此检查。 该选项必须位于命令行上的任何 /permissive- 选项之后。

示例

以下示例生成 C2733:

// C2733.cpp
extern "C" {
   void F1(int);
}

extern "C" {
   void F1();   // C2733
   // try the following line instead
   // void F2();
}

另请参阅

编译器错误 C2116
extern (C++)
/Zc:externC(使用标准 C++ extern "C" 规则)