scanf()やprintf()のような可変長引数関数については、通常Cコンパイラは
引数の型チェックはしないし、できない。大体、引数の個数も型も
決まっちゃいないんだからな。

コンパイラがprintf()書式指定文字列を「知って」おり、それに照らし合わせて
積極的にチェックするような仕様でない限り、コンパイルが通ってしまうのは、
普通だ。