GCCを使った警告メッセージの選択的削除
質問
このコードの部分。
Int32 status;
printf("status: %x", status)
を実行すると、以下のような警告が表示されます。
jpegthread.c:157: warning: format '%x' expects type 'unsigned int', but argument 3 has type 'Int32'
型をキャストすることでこの警告を取り除くことができることは知っていますが、GCC コンパイラのフラグでこの特定のタイプの警告を取り除くことが可能で、なおかつ
-Wall
?
どのように解決するのですか?
もし、このコードがポータブルに動作する必要があるなら、引数を 符号なしint にキャストする必要があります。
GCCで特定の警告を無効にすることについての質問に答えるために、GCCで特定の警告を有効にするには -Wxxxx で、それらを無効にするには -Wno-xxxx .
から GCC警告オプション :
で始まるオプションで、多くの特定の警告を要求することができます。
-W
で始まり、例えば-Wimplicit
を指定すると、暗黙的な宣言に対する警告を要求します。これらの警告オプションは、それぞれ否定形もあります。-Wno-
で始まる否定形があり、警告をオフにすることができます。-Wno-implicit
. このマニュアルでは、2つの形式のうち、デフォルトでない方のみを掲載しています。
あなたの場合、問題の警告は
-Wformat
-Wformat
printf や scanf などの呼び出しをチェックして、与えられた引数が指定されたフォーマット文字列に適した型を持っているか、フォーマット文字列で指定された変換が意味をなしているかどうかを確認します。これには、標準的な関数や、format 属性で指定された他の関数も含まれます (
関数属性
を参照)、printf、scanf、strftime、strfmon (an
X/Open
拡張、C標準にはない)ファミリ(または他のターゲット固有のファミリ)。書式属性が指定されていない関数をチェックするかどうかは、選択された標準バージョンに依存し、属性が指定されていない関数のそのようなチェックを無効にするには
-ffreestanding
または
-fno-builtin
.
フォーマットは、GNU libc バージョン 2.2 でサポートされているフォーマット機能に対してチェックされます。これらには、すべてのISO C90とC99の機能、Single Unix仕様の機能、いくつかのBSDとGNUの拡張が含まれます。ほかのライブラリの実装はこれらの機能すべてをサポートしていないかもしれません。GCCは特定のライブラリの制限を越える機能についての警告をサポートしません。しかしながら、もし
-pedantic
と一緒に使われる場合-Wformat
と一緒に使うと、選択された標準のバージョンにないフォーマット機能について警告が出されます(ただし、strfmonのフォーマットはC標準のどのバージョンにもないので、警告されません)。C言語の方言を制御するオプション」を参照してください。
関連
-
[解決済み】警告:イニシャライザーの周りに中括弧がないことを修復する方法?
-
[解決済み] gcc エラー:間違った ELF クラスです。ELFCLASS64
-
[解決済み] 自作のmakefileを作成する【エラー255】。
-
configure: エラー: $PATH に受け入れ可能な C コンパイラがありません。
-
[解決済み] LD_LIBRARY_PATH と LIBRARY_PATH の比較
-
[解決済み] CFLAGS, CCFLAGS, CXXFLAGS - これらの変数はいったい何を制御しているのでしょうか?
-
[解決済み] なぜGCCはa*a*a*a*aを(a*a*a)*(a*a*a)に最適化しないのでしょうか?
-
[解決済み] "お知らせ 未定義変数"、"Notice: Notice: 未定義のインデックス", "Notice:未定義のインデックス", "Notice."。PHPを使用した「未定義のオフセット
-
[解決済み] g++とgccの違いは何ですか?
-
[解決済み] gcc -s "と "strip "コマンドの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 自作のmakefileを作成する【エラー255】。
-
[解決済み] gccの-lpthreadオプション
-
[解決済み] シグナル11[SIGSEGV]のデフォルトアクションでプロセスが終了しています。
-
[解決済み] OSX 10.9にXcodeをインストール - clang: エラー: 入力ファイルがありません。
-
[解決済み] LLVMとは何ですか?
-
[解決済み】すべてのgcc警告を無効にする
-
[解決済み] Windows 7 マシンに gcc をインストールするには?
-
[解決済み] 一部のライブラリのみを静的にリンクする
-
[解決済み] gcc -ggdbとgcc -gの違いは何ですか?
-
[解決済み] GCCのビルドにはGMP 4.2+、MPFR 2.3.1+、MPC 0.8.0+が必要です。