union {
 int a;
 struct {
  int b1;
  int b2;
 } b;
};

という構造で a と b1 は同じ領域を占めることって保証されてますか?