加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

C++中是怎样挪用C接口的?

发布时间:2019-08-30 22:52:27 所属栏目:建站 来源:守望先生
导读:如安在C++代码中挪用写好的C接口?你也许会稀疏,C++不是兼容C吗?直接挪用不就可以了?这里我们先按下不表,先看看C++怎样挪用C代码接口。 C++怎样挪用C接口 为什么会有这样的环境呢?想象一下,有些接口是用C实现的,并提供了库,那么C++中该怎样行使呢?我们

不出不测,又报错了,很显然,C说话中并没有extern "C"这样的写法,所觉得了能使得test.c的代码既能被C++挪用,也能被C挪用,必要改写成下面这样:

  1. #include<stdio.h> 
  2. #ifdef __cplusplus 
  3. extern "C"{ 
  4. #endif 
  5.  
  6. void testCfun(); 
  7.  
  8. #ifdef __cplusplus 
  9. #endif 

这里通过__cplusplus宏来节制是否必要extern “C”,假如是C++编译器,那么extern "C"部门就会被预处理赏罚进去,这样test.c代码就可以既用于C++,也可以用于C啦。

赶紧去你的C项目代船埠文件中看看,是不是也有这样的代码段呢?

题目

为什么我们在C++代码中可以直接挪用一些尺度C库函数呢?纵然你在main函数中挪用printf等函数,它也不会呈现链接错误。由于库函数已经有了相同的处理赏罚了。

假如你照旧不确定,你可以先预处理赏罚:

  1. $ g++ -E main.i main.cpp 

去天生的main.i文件中找一找,是不是有extern "C"。

总结

C++支持重载,而C不支持,C++并不能直接挪用C代码写好的接口,因此假如你的C代码想要可以或许被C挪用,也想被C++挪用,那么别忘了extern "C"。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读