当前位置:首页 > 学习资源 > 讲师博文 > 教学部C++-C语言与C++相互使用

教学部C++-C语言与C++相互使用 时间:2024-01-19      来源:华清远见

前言

C和C++是两种不同的编程语言,它们之间可以通过一些方式进行交互和调用。下面是一些关于C和C++之间相互调用的常见方法和注意事项。

 

一、C++调用C

1.1创建项目

首先我们要有2个项目,一个项目以C++程序编译,要调用的项目是以C程序编译的。我们将以vs2019进行演示。

C++项目如下:

C语言项目如下:(注意:C语言需要添加头文件.h,头文件主要提供给主程序包含)

C语言头文件如下:

 

因为是C++调用C,而程序只有一个main函数,所以C项目里没有main函数。

1.2生成静态库

我们需要把C项目生成为静态库,具体操作如下:

右键点击我们的项目。

 

点击后如下图,选择属性:

打开属性后,选择常规,并将配置类型选择为静态库,如下图:

点击应用,再点击确定。确定后开始编译如下图:

根据路径打开我们的文件,打开后如下图:(.lib就是这个项目的静态库)

至此我们我静态库就已经生成完毕了。

1.3包含头文件

生成完静态库后,我们需要把生成的.lib文件和C程序的.h文件复制到我们的C++项目里。如下图:

1.4添加依赖库

将静态库以及C头文件添加到C++目录后,我们需要打开我们的C++项目,并打开C++项目的项目属性。如下图:



 

打开属性后,选择“链接器->输入”在附加依赖库一栏中,把我们生成的C成语的.lib静态库添加进去。

1.5 程序

至此我们的环境搭建完成,然后我们需要使用”extern关键字”来修饰这个C的头文件。

如下图:

并将程序更改如下:

更改完成后,点击编译。这样我们就能使用C++程序调用C程序的内容了。

 

二、C调用C++

2.1更改程序目录

我们要把调用的程序,改成C++程序.cpp。

然后把主程序改成C程序,如下图:

2.2更改代码

但是此时出问题了,C语言里并没有”extern C”这个用法, 这种用法放C程序里会出错,所以我们把他删掉。

然后,将我们的输出打印从”C”改成”C++”.

因为CPP程序和C语言程序得函数名的修饰不同,所以我们要用extern来修饰C++程序里需要调用的函数。

但是此时又来问题了,.h的头文件会在预处理进行展开,但是C语言不认识extern ”C”,所以我们可以这样操作:

__cplusplus是一个宏定义,只要在以C++程序编译时,才会有。如果不是以C++程序编译,那么就不会展开extern ”c”。

然后我们就可以编译了,生成的是C++程序的静态库。

2.3生成添加依赖库

再把C++的静态库和.h文件,移动到C程序目录。

在我们的.c主程序中,也需要添加依赖库。如下图


 

添加完成之后,选择确认。

 

这样我们就可以成功用C程序调用C++程序里的函数。

2.4编译

上一篇:嵌入式好还是后端开发好

下一篇:TCPIP协议栈在用户态的好还是在内核态的好

戳我查看2020年嵌入式每月就业风云榜

点我了解华清远见高校学霸学习秘籍

猜你关心企业是如何评价华清学员的

干货分享
相关新闻
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2024 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部