下午编译代码时总结出来了一点好东西,在此记录一下。
当自己写的C文件要掉用C++的头文件的时候要进行如下修改:
将.c文件中包含的.cpp文件的头文件由
#include “Cpp.h”修改为
#ifdef __cplusplus
extern "C"
{
#endif
#include "Cpp.h"
#ifdef __cplusplus
}
#endif
当编译代码时编译器就会正确的选择编译器编译上述代码。
相反,如果C++的文件要掉用C文件的头文件时,我查看了下资料,网上很多人说
将C++中的C的头文件改成
extern “C”
{
#include "C.h"
}
然后将C的头文件C.h中的C++用的函数前加extern
这种方法我试了下,结果是编译不过去的,编译器会一直提示说C++文件调用的函数没定义,所以编译会失败。
所以想了下办法最后改成如下方式:
C++文件中C的头文件方式不变还是
#include “C.h”
在C.h文件里面加上如下代码:
#ifdef __cplusplus
extern "C"
{
#endif
..............
#ifdef __cplusplus
}
#endif
至于C的头文件中的函数之前要不要加extern就无所谓了。