大家讲究 struct 中的字节对齐吗?

24 views
Skip to first unread message

Isaac Ge

unread,
Jun 5, 2014, 10:48:49 PM6/5/14
to learning-l...@googlegroups.com
刚通过 CSAPP 掌握了 struct 字节对齐机制,不过在下并不熟悉工程界 C 开发的惯例,蒙昧问下:大家是否会自发地(或是否会有权威编程规范明确规定),按 struct 字节对齐机制处理好 struct 内置变量的顺序,以实现分配空间最小化?

如属实,那 C 开发的确算是彻底追求底层优化的语言了。

guokr321

unread,
Jun 9, 2014, 8:29:35 AM6/9/14
to learning-l...@googlegroups.com
看干什么吧!如果是一段报文,有时需要紧密填充,编译器固有的对齐相反会带来副作用,就用#pragma pack设置。很简单,看你这块内存是一个集合呢,木有顺序,位置神马的,还是一个有序序列,有固定的位置和顺序呢?c会尽力给出最具灵活性的实现。
你想想如果你认为便宜一段就能取到一个东西,结果你取到的不是那个东东,制定协议的那些人可不管你编译器怎么对齐。btw,
有木有CSAPP的每章那些习题的答案呢?有几个题目不会
 
在 2014-06-06 10:48:49,"Isaac Ge" <acgt...@gmail.com> 写道:
刚通过 CSAPP 掌握了 struct 字节对齐机制,不过在下并不熟悉工程界 C 开发的惯例,蒙昧问下:大家是否会自发地(或是否会有权威编程规范明确规定),按 struct 字节对齐机制处理好 struct 内置变量的顺序,以实现分配空间最小化?

如属实,那 C 开发的确算是彻底追求底层优化的语言了。

--
您收到此邮件是因为您订阅了Google网上论坛中的“Linux C/C++/系统编程 一站式学习”论坛。
要退订此论坛并停止接收此论坛的电子邮件,请发送电子邮件到learning-linux-c...@googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout


Isaac Ge

unread,
Jun 9, 2014, 8:43:06 AM6/9/14
to learning-l...@googlegroups.com
2014-06-09 20:29 GMT+08:00 guokr321 <guok...@163.com>:

有木有CSAPP的每章那些习题的答案呢?有几个题目不会

我只做了有答案的练习题,Homeworks 完全没碰,实验题将来会通过 Coursera 上的「软硬件接口」练练。
Reply all
Reply to author
Forward
0 new messages