C和C++语法上有很多相同的地方,但是两种语言混合编程是有问题的。例如,在C中,函数set被编译器翻译成 _set,就是说在链接查抄是,使用的是_set这个名字找到的set函数。而C++中,由于函数重载特性,编译器在函数名的翻译中,需要使用函数具体使用的参数类型,例如set(int)函数,会被翻译成_set_i, set(double)会被翻译成_set_d。
如何在C++使用C函数了?
需要明确指明用C的命名方式查找函数,只需要在函数声明中用 extern "C",即可,例如 extern “C” void set(int count);表示用C的函数名查找方式。