什么时候用C而不用C++?

做接口只用C,千万别要C++。C++是编译器敏感的,一旦导出的接口里有 std::string这些东西,以及类,注定了要为各个编译器的各个版本准备独立的库。

刚好我有一些资料,是我根据网友给的问题精心整理了一份「C++的资料从专业入门到高级教程」,

点个关注在评论区回复"888"之后私信回复"888",全部无偿共享给大家!!!

一般来说,只要接口(如DLL导出的函数)是C的,那在同一个OS下的几乎所有语言都可以调用这个库。因此,很多现代的++软件库++ ,哪怕自己是用了一堆C++甚至++boost开发++的,都要额外的提供C语言的接口。

C++如何变成C的接口?最简单的就是++句柄化++ 。用void *替代对象的指针,而后用C语言封装所有的接口。要使用一个C++对象,就先create handle,内部调用new class,返回void *。而后,把class的所有方法都变成 class_callXXX(handle,...)的形式,把this指针通过handle传进去。当然这些函数可以设置为++友元++,会方便很多。当然用完后再销毁句柄。

至于COM、CORBA之类的抽象OO,都太复杂了。C的接口还是返璞归真。典型的比如 libuhd、 librdkafka等库,都是这样做的。

相关推荐
小李独爱秋12 分钟前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障
进击的小头3 小时前
实战案例:51单片机低功耗场景下的简易滤波实现
c语言·单片机·算法·51单片机
宵时待雨6 小时前
STM32笔记归纳8:时钟
笔记·stm32·单片机·嵌入式硬件
JJRainbow7 小时前
SN75176 芯片设计RS-232 转 RS-485 通信模块设计原理图
stm32·单片机·嵌入式硬件·fpga开发·硬件工程
宁静致远20218 小时前
STM32模拟IIC读取PCF8563
stm32·单片机·嵌入式硬件
三佛科技-134163842128 小时前
宠物洗澡打泡机方案,宠物泡泡机MCU方案开发设计分享
单片机·嵌入式硬件·物联网·智能家居·pcb工艺·宠物
芯岭技术8 小时前
低成本315/433M接收芯片 XL420 SOP8封装,支持 1527 等常见 OOK编码
单片机·嵌入式硬件
Wangshanjie_988 小时前
【通讯协议】-01、Modbus协议
单片机·信息与通信
听风吹雨yu8 小时前
STM32F407-MD5码计算/Digest认证计算
stm32·单片机·嵌入式硬件
yugi9878388 小时前
RN8302B电表芯片驱动开发指南(基于SPI通信)
驱动开发·单片机·嵌入式硬件