printfのフォーマットエラーの検出

printfじゃなくてcout使えよってつっこみはおいておいて、
__attribute__((format(type, i, j)))
書式文字列をチェックする。formatが書式文字列の種類(printf、scanf、strftime、strfmonのどれか)で、i番目の引数が書式文字列で、j番目からが可変パラメータ。

int myprintf(const char* format, …) __attribute__((format(printf, 1, 2)));

こうすればOK。便利!
参考サイト
ただし、gcc限定っぽい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です