printf の謎とリスク printf の謎 疑問 : 可変な引数の謎 引数の個数が違っても良い理由は ? 引数の型がが違っても良い理由は ? 答え : 書式の解釈と型変換 書式から、引数の個数や、型情報を取り出す キャスト演算を利用して、メモリ上の値を適切に取り出す printf/scanf のリスク 型情報 : 安全にメモリを利用する仕組 コンパイラが型情報を利用して、サービスすると同時に安全性を担保 printf/scanf : 自ら(関数/プログラマ)が型情報を操作している (高機能の理由だが危険な理由でもある) 書式指定と引数の指定の対応を誤ると大変 特に、scanf は、メモリの内容を書き換えてしまうので、更に危険