1、C++调用C接口:
C++ extern “C”(调用的地点使用,相当于调用C函数)
2、C调用C++接口
C++ extern “C”(把整个函数改为C,还是相当于调用C函数)
C++无法修改,即不能加extern?
在写文件时遇到无法修改的问题:另加中间层:再写一个C++文件,调用该函数,再在新C++文件中使用extern “C”,也会把原C++文件中的函数以C的规则来编译。
3、不用判断C、C++语言,统一编译的方法:
首先,如果文件时。cpp:该文件会自动#define __cplusplus,这样就可以区分.cpp和.c的文件了。我们就可以利用这一点来实现统一编译。
将函数包含在一段代码中:
#include<iostream>
using namespace std;
#ifdef __cplusplus
extern "C"
{
#endif
void fun()
{}
#ifdef __cplusplus
}
#endif
这段代码就是如果以定义__cplusplus,则在本身代码外加extern “C” ‘{’ 和 ‘}’。