5
struct {
  uint64_t a; char z[120];
} b;

...

struct buffer_with_alignment_requirement* c = (struct buffer_w*)&b;
c->start_using_it;

最初の memberaがないと、バッファ内のフィールドにアクセスするときにクラッシュする可能性があります。このようなメンバーを単純に追加して、構造体全体のアライメントを強制的に厳密にすることは、移植可能で正しいですか?

これはポインターのエイリアシングに関する問題ではなく、単にbスタック上のアドレスが常に 8 バイトでアラインされているかどうかに関する問題です。

4

3 に答える 3