gpt4 book ai didi

c - autoconf:检查成员的偏移量

转载 作者:行者123 更新时间:2023-12-02 01:56:24 25 4
gpt4 key购买 nike

我有一个结构:

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) 的小测试程序,但我不想在我的构建系统中引入运行时检查(我们不交叉编译不经常)。

最佳答案

使用 zero length bitfield没有自动工具技巧可能会解决这个问题。

struct foo {
struct {
int a;
int b;
long len;
unsigned short c;
unsigned short d;
};
int64_t : 0; // or long long whatever integer type is sizeof(double)
char payload[1024];
} bar;

关于c - autoconf:检查成员的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19731438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com