我们如何强制编译器没有结构填充?请解释
Posted
技术标签:
【中文标题】我们如何强制编译器没有结构填充?请解释【英文标题】:How do we force compiler not to have structure padding? Please explain 【发布时间】:2016-01-10 06:48:50 【问题描述】:一下。
【问题讨论】:
使用packed属性,见类似:***.com/questions/5473189/… 【参考方案1】:What is a "packed" structure in C? 的帖子介绍了如何在使用 gcc 时避免填充。
struct foo __attribute__((__packed__))
...
;
clang
的方法相同。见How to declare packed struct (without padding) for LLVM?。
Locally disable padding 的帖子介绍了如何在使用 MS Visual Studio 时避免填充。
#pragma pack(push, 1)
struct foo
...
;
#pragma pack(pop)
【讨论】:
以上是关于我们如何强制编译器没有结构填充?请解释的主要内容,如果未能解决你的问题,请参考以下文章