ホームページ  >  記事  >  バックエンド開発  >  コードの品質を向上させ、潜在的な問題を検出するための、C/C の最適なコンパイラ警告設定は何ですか?

コードの品質を向上させ、潜在的な問題を検出するための、C/C の最適なコンパイラ警告設定は何ですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-04 02:06:02190ブラウズ

What are the optimal compiler warning settings for C/C   to enhance code quality and detect potential issues?

C/C 用の最適なコンパイラ警告設定

適切なコンパイラ警告レベルを選択すると、潜在的な問題が特定され、コードの品質が向上します。さまざまなコンパイラの推奨レベルを次に示します。

gcc および g :

  • '-Wall' は、論理優先順位ルールや型チェックに関する警告を含む広範な警告をアクティブにします。 .
  • 「-Werror」は警告をエラーに格上げしますが、メモを取るために使用される「#warning」マクロを無効にする必要がある場合があります。

Sun CC:

  • '-xarch=v9' は、より厳しい警告レベルを有効にし、移植性と効率性の問題に対処します。

aCC (HPUX):

  • 「-A」は、バッファ オーバーフロー、null ポインターの逆参照、および未定義の動作に対する追加のチェックを有効にします。

Visual Studio:

  • 'レベル 4' ('/W4') は、初期化されていない変数や未使用のコードに関する情報を含む包括的な警告を提供します。

Intel:

  • 「-Wall」は、gcc の「-Wall」と同様の警告を呼び出すとともに、メモリの安全性と移植性に関する追加のチェックを行います。

Extra-Paranoid C Flags:

非常に重要なコードの場合、包括的な警告フラグのセットを使用できます。

-g -O -Wall -Weffc++ -pedantic  \
-pedantic-errors -Wextra -Waggregate-return -Wcast-align \
-Wcast-qual  -Wchar-subscripts  -Wcomment -Wconversion \
-Wdisabled-optimization \
-Werror -Wfloat-equal  -Wformat  -Wformat=2 \
-Wformat-nonliteral -Wformat-security  \
-Wformat-y2k \
-Wimplicit  -Wimport  -Winit-self  -Winline \
-Winvalid-pch   \
-Wunsafe-loop-optimizations  -Wlong-long -Wmissing-braces \
-Wmissing-field-initializers -Wmissing-format-attribute   \
-Wmissing-include-dirs -Wmissing-noreturn \
-Wpacked  -Wpadded -Wparentheses  -Wpointer-arith \
-Wredundant-decls -Wreturn-type \
-Wsequence-point  -Wshadow -Wsign-compare  -Wstack-protector \
-Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch  -Wswitch-default \
-Wswitch-enum -Wtrigraphs  -Wuninitialized \
-Wunknown-pragmas  -Wunreachable-code -Wunused \
-Wunused-function  -Wunused-label  -Wunused-parameter \
-Wunused-value  -Wunused-variable  -Wvariadic-macros \
-Wvolatile-register-var  -Wwrite-strings

これらの設定をプロジェクトの要件とサードパーティ ライブラリの互換性に合わせて調整します。

以上がコードの品質を向上させ、潜在的な問題を検出するための、C/C の最適なコンパイラ警告設定は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。