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