Aviso do compilador (nível 1) C4190
"identifier1" tem uma vinculação C especificada, mas retorna um UDT "identifier2" que é incompatível com C
Uma função ou ponteiro para a função tem um UDT (tipo definido pelo usuário, que é uma classe, estrutura, enumeração ou união) como tipo de retorno e extern "C"
vínculo. Isso será legal se:
Todas as chamadas para essa função ocorrem de C++.
A definição da função está em C++.
Exemplo
// C4190.cpp
// compile with: /W1 /LD
struct X
{
int i;
X ();
virtual ~X ();
};
extern "C" X func (); // C4190