这合法吗?我想导出一个C函数,但在内部该函数将使用C ++类。
extern "C" BOOL /*BOOL==int*/ Func()
{
return someclass::getinstance()->Func(); // this is just bool tho
}
答案 0 :(得分:4)
这是完全合法的。外部的目的" C"是为了防止Func()使其名称受损(用类型信息修饰),以便C模块可以使用其普通名称链接到它。 C ++破坏了名称,以便可以解析具有相同名称但不同参数列表的函数(函数重载)。