免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: zx_wing
打印 上一主题 下一主题

char[0], sizeof和struct padding [复制链接]

论坛徽章:
0
71 [报告]
发表于 2009-05-20 15:50 |只看该作者
#define offsetof(type, element) ((unsigned long)&((type *)0)->element)
==================================
类似这种东西,真的是不敢苟同。Linux Kernel 中的代码我就当看个西洋镜,自己做软件的时候用这种“技巧”不会把自己绕死啊。

针对LZ对数据结构的设计,特别是要与其他进程通讯的数据结构,千万不要省下我们自以为可以省下的信息。

有的时候看人家程序员的代码,感觉很幼稚,++ , -- 的操作做的都十分谨慎,但是程序设计多了,反而发现自己很幼稚。

论坛徽章:
0
72 [报告]
发表于 2009-05-20 16:23 |只看该作者
学习了,我自己对padding理解的也一直比较模糊。

这句话有气魄
作为一个装B青年,我认为当然不需要

论坛徽章:
0
73 [报告]
发表于 2009-05-21 13:59 |只看该作者
   好贴,顶起

论坛徽章:
0
74 [报告]
发表于 2009-05-21 14:30 |只看该作者
其实对于网络传输,为什么不用pragma pack,不是标准?

论坛徽章:
0
75 [报告]
发表于 2009-05-21 14:34 |只看该作者
求问下那段宏到底罗嗦的什么东西?我用gcc没编译通过

error: cast from 'char (*)[0]' to 'int' loses precision

论坛徽章:
2
青铜圣斗士
日期:2015-11-26 06:15:59数据库技术版块每日发帖之星
日期:2016-07-24 06:20:00
76 [报告]
发表于 2009-05-21 15:53 |只看该作者

回复 #75 SanZhiYuan 的帖子

将指针转型到整数会丢失精度。
ryan3216 该用户已被删除
77 [报告]
发表于 2009-05-21 21:32 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
78 [报告]
发表于 2009-05-25 17:43 |只看该作者
原帖由 wsw1wsw2 于 2009-5-20 15:50 发表
#define offsetof(type, element) ((unsigned long)&((type *)0)->element)
==================================
类似这种东西,真的是不敢苟同。Linux Kernel 中的代码我就当看个西洋镜,自己做软件的时候用 ...



呵呵!你可以man一下stddef.h。
不是没见过的就是不好的,关键是得知道怎么用。

论坛徽章:
0
79 [报告]
发表于 2009-05-26 11:58 |只看该作者
学习了,就事论事的讨论很吸引人:wink:

论坛徽章:
0
80 [报告]
发表于 2009-05-27 00:29 |只看该作者
不同机器间的数据交换,除了对齐,还有大端小端等等问题

你定义struct来传报文,当然会出问题了;传二进制数据也同样是不可靠的

感谢楼主分享经验。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP