前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C与C++混合编程

C与C++混合编程

作者头像
iot-me.club
发布2022-02-11 10:06:04
4010
发布2022-02-11 10:06:04
举报
文章被收录于专栏:iot-me

C++调用C函数

标准模板:

代码语言:javascript
复制
//实现不管.c文件还是.cpp都可以调用这里面的函数.
#ifdef __cplusplus
       extern "C" {
#endif
//这里添加代码
#ifdef __cplusplus
       }
#endif

extern "C"是C++ 的特性,是一种链接约定,通过它可以实现兼容C与C++ 之间的相互调用,即对调用函数能够达成一致的意见. extern中的函数和变量都是extern类型的:可以在本模块或者其他模块中使用,被extern "C"修饰的 例子

  • cfun.h c++ 的头文件,只要定义接口中的文件即可
代码语言:javascript
复制
//cfun.h

#ifdef __cplusplus  //条件编译,如果是c++前来调用该接口那就有extern c 的标识如果不是就不会有extern c的标识
extern "C"{
#endif 
	void cfun();
#ifdef __cplusplus  //与上同
}
#endif
 
#endif
  • cfun.c 只在接口中定义就可以了
代码语言:javascript
复制
//cfun.c
#include "cfun.h"
#include <stdio.h>
 
void cfun()
{
	printf("hello world.\n");
}
  • main.cpp实现c++ 中调用C函数
代码语言:javascript
复制
// main.cpp
#include <iostream>
#include "cfun.h"
 
int main()
{
	cfun();
	return 0;
}

C调用C++函数

  • c++头文件
代码语言:javascript
复制
//cppfun.h
void cppfun();
  • c++函数
代码语言:javascript
复制
//cppfun.cpp
 
#include "cppfun.h"
#include <iostream>
 
void cppfun()
{
	std::cout << "hello world." << std::endl;
}
  • C文件 main函数
代码语言:javascript
复制
//main.c
#include <stdio.h>
extern void cppfun();
int main()
{
	cppfun();
	return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020年09月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • C++调用C函数
  • C调用C++函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档