printf()系の関数ってどうやって、
複数の型で値渡ししてるの?

int printf(const char *format, ...);

...っていうのが可変長引数っていうのまでは
わかったんだけど・・・

個人的予測では、void*で受けて、
*formatの内容で型キャストしてるのかなぁ・・・と。