私は構造を持っています:
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)
、ビルド システムに実行時チェックを導入したくありません (クロスコンパイルは頻繁に行われます)。