什么时候用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等库,都是这样做的。

相关推荐
嵌入式大圣1 小时前
单片机结合OpenCV
单片机·嵌入式硬件·opencv
日晨难再3 小时前
嵌入式:STM32的启动(Startup)文件解析
stm32·单片机·嵌入式硬件
yufengxinpian3 小时前
集成了高性能ARM Cortex-M0+处理器的一款SimpleLink 2.4 GHz无线模块-RF-BM-2340B1
单片机·嵌入式硬件·音视频·智能硬件
__基本操作__4 小时前
历遍单片机下的IIC设备[ESP--0]
单片机·嵌入式硬件
网易独家音乐人Mike Zhou10 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
lantiandianzi17 小时前
基于单片机的多功能跑步机控制系统
单片机·嵌入式硬件
哔哥哔特商务网17 小时前
高集成的MCU方案已成电机应用趋势?
单片机·嵌入式硬件
跟着杰哥学嵌入式18 小时前
单片机进阶硬件部分_day2_项目实践
单片机·嵌入式硬件
东芝、铠侠总代1361006839319 小时前
浅谈TLP184小型平面光耦
单片机·嵌入式硬件·物联网·平面
lantiandianzi19 小时前
基于单片机中医药柜管理系统的设计
单片机·嵌入式硬件