编译器警告(等级 1)C4190

“identifier1”指定了 C 链接,但返回 UDT“identifier2”,这与 C 不兼容

函数或指向函数的指针具有 UDT(用户定义的类型,它是类、结构、枚举或联合)作为返回类型和 extern "C" 链接。 如果具备以下条件,那么,这样是合法的:

  • 所有对此函数的调用都来自 C++。

  • 该函数的定义是采用 C++ 的。

示例

// C4190.cpp
// compile with: /W1 /LD
struct X
{
   int i;
   X ();
   virtual ~X ();
};

extern "C" X func ();   // C4190