>>200
可変引数の関数printf()に渡された引数が
たまたま3個のint数と解釈可能になる順序に
スタックに積まれてるだけなんじゃないかしら。

#include <stdio.h>

struct some {
 int a, b, c, d;
};

void main() {
 some ins1 {0, 1, 2, 3};
 some ins2 {10, 11, 12, 13};

 printf("%d, %d, %d\n", ins1, ins2);
}

これで 0, 1, 2 と表示される感じ。
手元の環境では 0, 1, 2 だけど、移植性は全然ないよね。