类打包和对齐
在 GCC 编译器中不带参数调用 #pragma pack()
的对齐方式是什么?
另外,我经常看到当我们使用placement new
创建对象时,class
经常被打包。这是什么原因呢?有必要这样做吗?
What is the alignment for calling #pragma pack()
with no argument in GCC compiler?
Also, I often see that when we use placement new
in creating object, the class
is often being packed. What is the reason for that? Is it necessary to do so?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于第一部分,您可以鲁莽地使用谷歌: http://gcc.gnu .org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html
其次,有时您可能需要控制类的二进制格式。您可能需要管理内存量和数据结构的实际二进制偏移量:
根据所使用的机器类型和编译指示包,可能使用 8 字节内存或 5 字节内存。
for the first part, you could have recklessly used google: http://gcc.gnu.org/onlinedocs/gcc/Structure_002dPacking-Pragmas.html
secondly there may be times when you need to control the binary format of your class. you may need to manage the amount of memory and the real binary offsets of data structures:
may use 8 bytes of memory or 5 bytes of memory, according to machine type and pragma pack used.