sizeof的问题
本帖最后由 sunguangshou 于 2011-04-19 22:21 编辑
struct w1{char ch[1];}
w1 w11;
sizeof(w11)的值应该不论在什么系统下都为1吧。
还是跟机器有关呢?
我认为这个char数组,给机器没有关系。
各位大侠怎么看呢?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
本帖最后由 nketc 于 2011-04-19 22:28 编辑
编译器会有一些填充数据,32位机器上上面的结果是4.
不过你可以强制编译器不填充。
gcc是 __pack
============================
谢谢 三月廿七 指正,请往下看。 上面说是4 其实是错误的。
填充是为了地址对齐,提高访问效率。
本帖最后由 sunguangshou 于 2011-04-19 22:16 编辑
回复 3# nketc
稍稍有一点明白,谢谢高手。
也就是说和机器和操作系统有关联了。
我这么说对吗?
你试了没有啊, ?
大侠,希望你给个再精辟的答案吧。
他在乱说, 答案就是1
回复 5# 三月廿七
复制代码
回复 7# 三月廿七
对不起,我错了。
本帖最后由 三月廿七 于 2011-04-19 22:26 编辑
没关系...