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

论坛 期权论坛 期权     
C语言与C++编程   2019-6-9 21:25   3432   0
作者:wxquare
链接:https://www.cnblogs.com/wxquare/p/6872025.html
由于C++支持函数重载,在编译函数代码的时候会加上参数类型的信息,而C编译只有函数名信息,导致C++直接调用C代码在链接的时候会出现函数未定义的问题。解决这种问题有两种方法。方法一:在写C代码的时候考虑到C++可能会调用这些函数,增加extern “C”;方法二:如果C++要调用的C代码没有考虑到这个问题,在包含c代码的时候加上extenrn"C"的标志。例如下面有个c文件cfile.h中定义了sumOfab(int a,int b),cfile.c中实现了这个函数。另外的cpp文件需要使用到这个函数。

方法一:
  1. #ifndef CFILE_H_
  2. #define CFILE_H_
  3. #ifdef __cplusplus
  4. extern "C"{
  5. #endif
  6. int sumOfab(int a,int b);
  7. #ifdef __cplusplus
  8. }
  9. #endif
  10. #endif /* CFILE_H_ */
复制代码
方法二:
  1. extern "C"{
  2. #include "cfile.h"
  3. }
复制代码
●编号475,输入编号直达本文

●输入m获取文章目录
C语言与C++编程
分享C/C++技术文章
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:200
帖子:40
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP