C++调用C代码的两种方式

来自:wxquare

由于C++支持函数重载,在编译函数代码的时候会加上参数类型的信息,而C编译只有函数名信息,导致C++直接调用C代码在链接的时候会出现函数未定义的问题。解决这种问题有两种方法。方法一:在写C代码的时候考虑到C++可能会调用这些函数,增加extern “C”;方法二:如果C++要调用的C代码没有考虑到这个问题,在包含c代码的时候加上extenrn"C"的标志。例如下面有个c文件cfile.h中定义了sumOfab(int a,int b),cfile.c中实现了这个函数。另外的cpp文件需要使用到这个函数。


方法一:


#ifndef CFILE_H_
#define CFILE_H_

#ifdef __cplusplus
extern "C"{
#endif


int sumOfab(int a,int b);


#ifdef __cplusplus
}
#endif

#endif /* CFILE_H_ */


方法二:


extern "C"{
#include "cfile.h"
 }
推荐↓↓↓
C语言与C++编程
上一篇:OOP 面向对象编程:由 C 到 C++ 下一篇:C++ 对象数组与对象指针