首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
C++调用C语言库时,需要加什么。
[问答题]
C++调用C语言库时,需要加()
添加笔记
邀请回答
收藏(138)
分享
纠错
9个回答
添加回答
5
推荐
MyGoodHelper
extern “C”
C++语言为了支持重构(重构的特征:相同的范围、相同的名字、不同的参数),在编译时对函数的命名方式进行了改变,编译后的名字包括一些参数的信息。extern "C"的作用,就是“提示”编译器,下面的文件和函数,要用C语言的命名规则进行。
编辑于 2015-01-12 15:43:48
回复(0)
6
牛客-007
答案:
C++调用C的库函数时,如果头文件定义得不恰当,可能会出现明明某函数在obj文件中存在,但是却发生链接失败的情况,出现如下错误:
undefined reference to 'xxx'
出现问题的原因是c库函数编译成obj文件时对函数符号的处理和C++不同。因为C++函数支持重载,所以函数符号的处理要更复杂一些,c往往不作修饰。
C++和编译器的设计者早已料到了这个问题,并提供了一种通用的解决办法:使用extern "C"来修饰旧C库的外部函数声明。extern "C"修饰内的函数,一律按照c的风格来编译,以便能够链接到用c编译出来的obj库上去。
发表于 2015-01-28 15:06:21
回复(0)
1
kuring
在调用的函数声明前加上extern "C",以表明需要以C语言的函数形式进行链接。
发表于 2015-01-22 10:46:12
回复(0)
0
Java后端练习生
extern "C"
发表于 2021-04-09 13:25:45
回复(0)
0
SKy20190702101082
<p>Extern “c“</p>
编辑于 2020-07-09 16:16:21
回复(0)
0
听见_下雨的声音
extern "C"
提升编译器 按照 C 的风格来
发表于 2019-10-15 16:17:01
回复(0)
0
逆风奔跑的人
extern "C"
发表于 2015-10-20 08:35:13
回复(0)
0
gaigai152
发表于 2015-07-02 08:49:23
回复(0)
0
墨儿
extern "C"
发表于 2015-01-11 17:04:54
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C++工程师
大华股份
C++
2015
Java工程师
来自:
浙江大华2015届校园...
上传者:
小牧魔法袋
难度:
9条回答
138收藏
6500浏览
热门推荐
相关试题
有一个变量int a=0;两个线程...
2015
Java工程师
C++工程师
大华股份
评论
(16)
来自
浙江大华2015届校园招...
tcp三次握手创建连接,双方交互的...
网易
2015
网络基础
网易互娱
游戏研发工程师
计算机网络
评论
(11)
来自
2015网易互娱校园招聘...
函数参数使用的空间是在()中申请的...
网易
2015
C++
网易互娱
游戏研发工程师
评论
(11)
来自
2015网易互娱校园招聘...
sprinf和snprintf函数...
2015
C++
Java工程师
C++工程师
大华股份
评论
(7)
来自
浙江大华2015届校园招...
下面代码输出什么?
2015
C++
Java工程师
C++工程师
大华股份
评论
(50)
来自
浙江大华2015届校园招...
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题