>>139
よしわかった。
じゃぁまずは offsetof 使ったやつを。
C が POD 限定になるうえに offsetof(C, y.y1) が怪しいが、
とりあえず >>134 の C についてコンパイルと実行はできた。

void print(C* p)
{
  static size_t const offset_to_int[4] = {
    offsetof(C, x),
    offsetof(C, y.y1),
    offsetof(C, y.y2),
    offsetof(C, z),
  };
  for(int i = 0; i < 4; ++i)
  {
    printf("%d\n", *reinterpret_cast<int*>(reinterpret_cast<char*>(p) + offset_to_int[i]));
  }
}