- 9
- 0
- 约1.84千字
- 约 3页
- 2017-05-31 发布于北京
- 举报
C++调用C函数
前言:以前见到extern C这样的语句,只是简单地知道跟外部链接有关,但是没有深刻理解它的意思。
首先,为什么要使用extern C修饰符?
C++调用其它语言的函数,由于编译器生成函数的机制不一样,所以需要经过特殊处理,才可以调用。调用C语言的函数,需要在函数声明的地方语句extern C。如果不使用该语句,在链接的时候,编译器就会报以下这种错误。
Test.obj : error LNK2019: 无法解析的外部符号 void __cdecl DeleteStack(struct _Node *) (?DeleteStack@@YAXPAU_Node@@@Z),该符号在函数 _main 中被引用。
然后是如何使用?
应该怎么使用该语句呢?
刚开始,我简单地在C++源文件的前面使用该语句声明,但是还是出错,而且是在编译阶段就报错。
[cpp] view plaincopyprint?
error?C2732:?链接规范与“DeleteStack”的早期规范冲突。??
error C2732: 链接规范与“DeleteStack”的早期规范冲突。
为什么会出现这个错误呢?因为C++源文件已经引入了C的头文件,在头文件里,声明该函数时没有extern修饰,而这里有extern修饰,所以冲突了。解决的办法有两个。
一。在C头文件中加上extern修饰符。
直接加
您可能关注的文档
最近下载
- 实现人生第一桶金的四个步骤.pdf VIP
- 2025年提升系统管理制度(3篇) .pdf VIP
- 人教版艺术美术二年级下册 第二单元 第1课《天然的形态》课件.ppt
- 大学生简历毕业生简历求职简历 (34).docx VIP
- 小学古诗词教学研究:情境教学法的应用策略.docx VIP
- 化工机械基础试题及答案.docx VIP
- 离婚协议书(个人债务确认版).docx VIP
- 2025年事业单位工勤技能-湖南-湖南行政岗位工四级(中级工)历年参考题库典型考点含答案解析.docx VIP
- 新解读GB_T 228.1 - 2021《金属材料 拉伸试验 第1部分:室温试验方法》最新解读.pptx VIP
- 《现代战争与不同文化的碰撞和交流》教学设计 .pdf VIP
原创力文档

文档评论(0)