首页 > 编程语言 >【嵌入式】keil5中使用C,C++混合编译

【嵌入式】keil5中使用C,C++混合编译

时间:2023-07-05 20:12:06浏览次数:54  
标签:__ int cplusplus ifdef C++ 嵌入式 endif keil5 void

5份文件:a.c和a.h和b.cpp和b.h和main.c

其中main.c调用b.cpp,b.cpp调用a.c

 

main.c

#include "./b.h"

int main(void)
{
	int t=funC();
	while (1)
	{
	}
}

 

b.h

#ifndef _B_
#define _B_
#ifdef __cplusplus
extern "C" {
#endif
int funC(void);
#ifdef __cplusplus
}
#endif
#endif

 b.cpp

#include "./b.h"
#include "./a.h"
class B{
	public:
            int funB(void);
};
int B::funB(void){
	return funA();
}
#ifdef __cplusplus
extern "C" {
#endif	
int funC(void){
	B* b=new B();
	return b->funB();
}
#ifdef __cplusplus
}
#endif

 

a.h

#ifndef _A_
#define _A_
#ifdef __cplusplus
extern "C" {
#endif
int funA(void);
#ifdef __cplusplus
}
#endif
#endif

a.c

#include "./a.h"
 
int funA(){
	return 2;
}

 

参考:https://blog.csdn.net/weixin_30241919/article/details/99173820

标签:__,int,cplusplus,ifdef,C++,嵌入式,endif,keil5,void
From: https://www.cnblogs.com/LPworld/p/17529678.html

相关文章

  • Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
    https://blog.csdn.net/qq_21438461/article/details/130764349Linux系统编程C/C++以及Qt中的零拷贝技术:从底层原理到高级应用一、零拷贝技术的概念与价值(Zero-CopyConceptandValue)1.1什么是零拷贝(WhatisZero-Copy)1.2为什么我们需要零拷贝(WhyWeNeedZero-C......
  • C++中使用typedef定义的UNIT_PTR,LONG_PTR等
    在看代码时,发现有用到WPARAM,LPARAM,LRESULT我去找它们的定义,发现在C:\ProgramFiles(x86)\WindowsKits\10\Include\10.0.19041.0\shared\minwindef.h中,有如下定义/*Typesuseforpassing&returningpolymorphicvalues*/typedefUINT_PTRWPARAM;typed......
  • OpenCV4环境配置详细指南(C++)
      OpenCV编程学习今天正式开始,简要的记录一下,希望对大家有用。1:所需文件   开发工具:VisualStudio   下载地址   视觉库:OpenCV  下载地址2:安装  VisualStudio下载好后直接安装,一定要选择C++模块  OpenCV下载好后,双击解压到合适的位置,......
  • C++、Lua、Python字符串防止转义
    使用场景C++里测试路径需要转义,Windows复制路径里面的斜杠需要加斜杠,每次都需要操作比较麻烦,而且看着也不好看换行,代码里有时候硬编码一些文本、数据,依赖""的自动拼接和行末的斜杠,需要手动写\r\n换行C++Rawstringliteral以前用Lua,里有[[]],防止转义非常方便。后来了解到P......
  • C++ 继承
     面向对象程序设计中最重要的一个概念是继承。继承允许我们依据另一个类来定义一个类,这使得创建和维护一个应用程序变得更容易。这样做,也达到了重用代码功能和提高执行效率的效果。当创建一个类时,您不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的......
  • c++项目打包,发布win安装包
                      添加文件夹里面除了子文件夹的所有文件 ......
  • 模拟嵌入式边缘计算卡设计方案:367-XC7Z100 板卡 基于zynq XC7Z100 FMC接口通用计算平
    基于zynqXC7Z100FMC接口通用计算平台 一、板卡概述北京太速科技板卡由SoCXC7Z100-2FFG900I芯片来完成卡主控及数字信号处理,XC7Z100内部集成了两个ARMCortex-A9核和一个kintex7的FPGA,通过PL端FPGA扩展FMC、光纤、IO等接口,PS端ARM扩展网络、USB、RS232等接口......
  • 60.C++中新增了string,它与C语言中的 char *有什么区别吗?它是如何实现的?
    60.C++中新增了string,它与C语言中的char*有什么区别吗?它是如何实现的?1.实现方式:string是一种抽象类,它的实现由std::string和char*转换而来。在实现上,std::string内部通常会使用动态数组来存储字符串,可以动态地分配内存。同时,std::string还可能使用一些优化技术,如内部缓存和......
  • C++面试八股文:如何避免死锁?
    某日二师兄参加XXX科技公司的C++工程师开发岗位第31面:面试官:什么是锁?有什么作用?二师兄:在C++中,锁(Lock)是一种同步工具,用于保护共享资源,防止多个线程同时访问,从而避免数据竞争和不一致。面试官:有哪些锁?二师兄:从种类上分,可以分为普通锁、读写锁、递归锁等种类。二师兄:从实现上分......
  • 【嵌入式】超详细的嵌入式路径学习精选合集,建议收藏
    超详细的嵌入式路径学习精选合集,纯干货,建议收藏!本合集归类汇总了嵌入式开发技术相关的学习路径、知识与经验总结,以及一些源码、资料分享等。将其分类列出目录,一来为了避免有些知识长时间不用,会很容易忘掉,方便自已检索查看;二来也希望这些文章能给一部分朋友提供些许帮助。本合集汇总......