[229] Re:インタプリタとコンパイラ
投稿者:774RR
2007/02/20 02:13:25
>my $string = sprintf("%s %s %s\n", $day, $message);
perl はぜんぜん知りませんが、この sprintf が C の sprintf と同じ機能と仮定して:
C/C++ では上記コードのエラー検出はされません。
sprintf は「可変個引数」な関数です。
固定な引数=必ず必要な引数、が無いとエラーになりますが、
可変個数部分=有るか無いかは状況次第、が過不足していてもエラー検出することはできません。
原理的に不可能。
# GNU CC では printf 系関数のフォーマット引数が文字列リテラルな場合に限り、
# 個数や形の不一致を検出してくれますが、一般的には無理。