format

C に適用 C++ に適用

目的

ストリング入出力フォーマット指定で起こりうる問題の警告を出します。診断された関数は、printf、scanf、strftime、strfmon ファミリー関数、およびフォーマット属性でマークされた関数です。

構文


構文図

サブオプションは、以下のとおりです。


all すべてのフォーマット診断メッセージをオンにします。
exarg 過剰な引き数が printf および scanf スタイル関数呼び出しに表示された場合に警告を出します。
nlt フォーマット関数がそのフォーマット引き数を va_list として取らない限り、書式制御ストリングがストリング・リテラルではない場合に警告を出します。
sec フォーマット関数の使用中に起こりうるセキュリティー問題の警告を出します。
y2k 2 桁の年数を作成する strftime フォーマットの警告を出します。
zln 長さがゼロのフォーマットの警告を出します。
注:
上記のサブオプションのいずれかの前に no を指定すると、診断メッセージのグループが使用不可になります。例えば、y2k 警告の診断メッセージをオフにするには、コマンド行で -qformat=noy2k を指定します。

コマンド行で -qformat が指定されていない と、コンパイラーはデフォルト設定を -qnoformat と見なします。これは、-qformat=noall と同等です。

サブオプションなしで、コマンド行で -qformat が指定されると、コンパイラーはデフォルト設定を -qformat=all と見なします。

  1. すべての書式制御ストリング診断を使用可能にするには、以下のいずれかを入力します。

    xlc++ myprogram.C -qformat=all
    

    xlc++ myprogram.C -qformat
    
  2. y2k データ診断検査以外のすべてのフォーマット診断検査を使用可能にするには、以下を入力します。

    xlc++ myprogram.C -qformat=all:noy2k
    

関連参照

コンパイラーのコマンド行オプション IBM Copyright 2003