1。修改c代码的头文件,当其被用于c++代码时,在声明中加入extern “c”
//Max.h C语言头文件
#ifndef _MAX_H
#define _MAX_H_
extern “C” int Max(int a,int b);
#endif
//C语言实现文件 max.c
#include “Max.h”
int Max(int a ,int b){
}
//C++语言调用文件 Main.cpp
#include “Max.h”
int main(){
int nMax=Max(1,2);
return 0;
}
2。在c++代码中重新声明一下C函数,在重新声明时添加extern “C”.代码如下:
//Max.h C语言头文件
#ifndef _MAX_H
#define _MAX_H_
extern int Max(int a,int b);
#endif
//C语言实现文件 max.c
#include “Max.h”
int Max(int a ,int b){
}
//C++语言调用文件 Main.cpp
#include “Max.h”
extern “C” int Max(int a,int b); //这样可以避免方法1中头文件可能被用在.c文件中的。
int main(){
int nMax=Max(1,2);
return 0;
}
3。在包含C头文件时,添加extern “C".
//Max.h C语言头文件
#ifndef _MAX_H
#define _MAX_H_
extern int Max(int a,int b);
#endif
//C语言实现文件 max.c
#include “Max.h”
int Max(int a ,int b){
}
//C++语言调用文件 Main.cpp
extern “C”{
#include “Max.h”
}
int main(){
int nMax=Max(1,2);
return 0;
}
注意:在c/c++混合编程时,extern “c”一定要加在C++文件中,否则extern “c”不会发生作用。