【发布时间】:2013-11-12 22:19:02
【问题描述】:
我有一个结构:
struct foo {
struct {
int a;
int b;
long len;
unsigned short c;
unsigned short d;
};
char payload[1024];
} bar;
我想在配置时找出是否需要插入填充以使“有效负载”双对齐。
Autoconf 提供了AC_CHECK_SIZEOF(type) 和AC_CHECK_ALIGNOF(type),但我真正需要的是AC_CHECK_OFFSETOF(type, member)。如果报告的偏移量不是双对齐的,我可以引入足够的填充来做到这一点。
我可以运行一个报告 offsetof(struct bar, payload) 的小测试程序,但我不想在我的构建系统中引入运行时检查(我们经常交叉编译)。
【问题讨论】: