【发布时间】:2016-01-10 06:48:50
【问题描述】:
我们如何强制编译器没有结构填充?请解释一下。
【问题讨论】:
-
使用packed属性,见类似:stackoverflow.com/questions/5473189/…
标签: c
我们如何强制编译器没有结构填充?请解释一下。
【问题讨论】:
标签: c
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)
【讨论】: