首页
有什么办法可以做到私有结构体成员与公共结构体成员区别对待呢?
在文章最后提到之前的隐藏结构体成员的方法是一种完全私有的封装无法做到公私分明,这样通过函数调用在mcu中会存在较大的开销。
1、原理与技巧
那时候bug菌就在想有什么办法可以做到私有成员与公共成员区别对待呢?
既然.h文件中的不完全类型仅仅只是一个啥也不含的结构体空壳,那么根据结构体的内存模型以及我们平时经常提到的c语言面向对象设计中的继承处理。
于是便编写了如下代码来验证我的想法:
参考代码:
输出结果:
从输出结果上来看编译正常,且输出了正确的结果,member1可被外界直接访问,而member2只能通过app.c内部直接访问,或者通过定义外部函数接口进行间接访问,否则就会报错。一顿猛如虎的操作竟然验证了自己的一些想法。
2、优化版本
后来又想了想,如果成员比较多,不是特别好管理,于是尝试了一个更好的成员管理方式:
参考代码:
输出结果:
编译ok,完工,是不是感觉有一股c++的味道了,如果你还没有看懂的话,记得多看几遍,因为这种处理方式算是非常常见的~
波音首次出现了737MAX新订单连续三个月为零的情况
利用MAX260的特性实现预滤波器的设计
2020年六大主流编程语言的发展趋势和变化
基于SSL1623PH设计的开关电源LED驱动技术
消除连接壁垒“云梯计划”解决设备商智能化痛点
有什么办法可以做到私有结构体成员与公共结构体成员区别对待呢?
英特尔专用AI芯片憋了三年半终于要放大招了
吉利要成为中国的丰田不仅要打败对手,更重要的是不断战胜自己
爱立信顺利完成IMT-2020(5G)推进组5G蜂窝定位技术验证
慎重对待人脸信息,人脸识别为什么就被禁用了?
要转型科技公司?大众、通用、福特的2022电动化战略
江苏移动和华为新通话解决方案荣获ICT中国(2023)卓越“创新应用”奖
利用Airbnb在线体验充分利用自己的内心
爱立信研发机房和产品能耗解决方案
南孚5号锂铁电池测评 一次性电池的最佳替代品
家中插座的地线怎么接?对于插座接线的一些规定
基于LED背光照明设计方案的利与弊分析
上半年三星产品出口占韩国出口总额的20%,缴纳比去年同期增长19.7%
如何能够降低电动无人机噪音技术,为研发创新提供新的思路和方向
深圳决定2020年新追加1万个插电混合动力小汽车指标