構造体メンバーの並び順

構造体オブジェクト内では,非ビットフィールドメンバ及びビットフィールドが置かれる単位は,、宣言された順に増加するアドレスをもつ。構造体オブジェクトへのポインタは,適切に変換すれば,その先頭メンバ(又はビットフィールドならば,それが置かれた単位)を指す。更に,逆も成り立つ。したがって,構造体オブジェクトの中に適切な境界調整を行うために必要な,名前のない詰め物があってもよいが,先頭には名前のない詰め物があってはならない。
6.5.2.1 構造体指定子及び共用体指定子 -- X 3010-1993(ISO/IEC 9899:1990)

つまり宣言された順にメンバーが並ぶということだね。つまり以下のような構造体オブジェクトにおいて、offsetof(struct sample_t, value) < offsetof(struct sample_t, name) であることを規格は要請しているわけだ。

struct sample_t {
  int value;
  const char *name;
};