搜索
bottom↓
123
返回列表 发新帖
楼主: Gorgon_Meducer

[2017-5-20 更新][交流][微知识]模块的封装(一):C语言类.....

  [复制链接]

出0入0汤圆

发表于 2018-7-18 18:01:47 | 显示全部楼层
lzly0302 发表于 2018-7-18 17:06
union queue_t {                                  \
    uint8_t *pchBuffer;    //!< queue buffer   
  ...

这么搞会把自己绕死, 现在的编译器,基本上都支持C++,何必这么麻烦。

出0入296汤圆

 楼主| 发表于 2018-7-19 17:56:46 | 显示全部楼层
lzly0302 发表于 2018-7-18 17:06
union queue_t {                                  \
    uint8_t *pchBuffer;    //!< queue buffer   
  ...


你展开的这个部分不是应该放在.h里的部分——是.c文件自己会用的部分。
.h里面会放的部分不是这样的。

.h里面会用的是 EXTERN_CLASS() 和 END_EXTERN_CLASS()
你尝试用这两个宏展开看看。

出30入54汤圆

发表于 2018-8-13 16:33:22 | 显示全部楼层
在大佬的带领下重新再认识一下C

出0入0汤圆

发表于 2018-8-23 09:30:03 | 显示全部楼层
这个可以学习一下。

出0入4汤圆

发表于 2019-8-26 17:21:11 | 显示全部楼层
收了  谢谢!

出0入4汤圆

发表于 2019-8-27 13:32:38 | 显示全部楼层
我没看懂。。。。

出0入296汤圆

 楼主| 发表于 2019-8-27 17:28:49 | 显示全部楼层
kyq_linux 发表于 2019-8-27 13:32
我没看懂。。。。

能说说什么地方没有看懂么?我给你解答。

出0入4汤圆

发表于 2019-9-5 10:56:05 | 显示全部楼层
我想的是将 .h公开 但是.c 不暴露  但是定义的数据结构 我不知道怎么才能告诉别人能够使用,但不能够更改。。。。。。。。
后来想了想 这好像是个悖论。。。。 给别人用  却不告诉别人这是啥 。。哈哈哈
有点晕菜了。

出0入296汤圆

 楼主| 发表于 2019-9-5 20:59:15 | 显示全部楼层
kyq_linux 发表于 2019-9-5 10:56
我想的是将 .h公开 但是.c 不暴露  但是定义的数据结构 我不知道怎么才能告诉别人能够使用,但不能够更改。 ...

这其实不是悖论,这就是掩码结构体的目的:
我们定义结构体的内部结构——是给模块自己用的——不是给用户用的。
用户要用的是这个结构体的整体,而不应该操作结构体内部的任何成员变量。

也就是说,结构体的内部内容对用户是黑盒子,用户只需要把这个黑盒子当成一个整体通过API来使用就行了。

不知道这样解释是否清楚了?

出0入296汤圆

 楼主| 发表于 2019-9-5 22:46:30 | 显示全部楼层

2019-9-05 Update

    使用掩码结构体的开源OOC模板已经演进到第四版,并在github上开源,欢迎大家拍砖:
    PLOOC在github上的镜像
    完整例子:
    使用PLOOC实现队列的例子

出0入0汤圆

发表于 2019-10-28 14:19:06 | 显示全部楼层
学习了!!!

出0入0汤圆

发表于 2020-2-21 19:13:54 | 显示全部楼层
MARK ,感谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-8 14:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表