可以在C代码中调用C++的函数,要满足以下条件
* 被调用C++函数要使用extern C声明,这样
o 多个重载函数中只能有一个函数被声明成extern C,只有这个函数能
被C代码访问。
o 你不能在函数的参数列表中使用类和引用,C代码没办法处理引用或者
成员函数或者虚函数什么的。
o 你也没办法使用namespace,C代码不懂得这个。要在C代码中调用的
C++函数只能是全局作用域的。
* main()函数要用C++编译器来编译,这是为了使C++代码中的全局变量和
类中的静态成员变量能够正确初始化。
o 如果一定要在C语言中实现main()函数
那可以在C++中定义
int main(int argc, char* argv[])
{
return main_in_C(argc, argv);
}
然后在C语言中把int main_in_C(int argc, char* argv[]);函数当
作原先的main()函数来实现。
* 你的C编译器,C++编译器,连接程序得是同一个厂商出品的。不同的
厂商出品的编译器编译出的东东是不兼容的。
这个经过在VC9下测试是可以的,BAIDU知道里说的不能#include CPP的头文件是错误的。