外部"C"函数内部使用类C++

Extern "C" function internally uses C++ class

本文关键字:C++ 内部 函数 外部      更新时间:2023-10-16

这样做合法吗?我想导出一个C函数,但在内部该函数将使用C++类。

extern "C" BOOL /*BOOL==int*/ Func()
{
   return someclass::getinstance()->Func(); // this is just bool tho
}

这是完全合法的。extern"C"的目的是防止Func()的名称被篡改(用类型信息修饰),这样C模块就可以使用它的普通名称链接到它。C++篡改名称,以便解析具有相同名称但不同参数列表的函数(函数重载)。