1. ホーム
  2. c

[解決済み] C言語のGCCフラグで便利なものは何ですか?

2022-04-23 05:16:48

質問

ビヨンドセッティング -Wall と設定します。 -std=XXX また、C言語で使用するために、他に本当に役に立つがあまり知られていないコンパイラ・フラグは何でしょうか?

特に、追加の警告や、偶発的な型の不一致を絶対に少なくするために、場合によっては警告をエラーに変えてしまうことに興味があります。

どのように解決するのですか?

いくつかの -f のコード生成オプションは興味深い。

  • -fverbose-asm でコンパイルしている場合に便利です。 -S アセンブリの出力を調べるために、いくつかの有益なコメントが追加されます。

  • -finstrument-functions 関数の入口と出口で、ユーザが提供するプロファイリング関数を呼び出すコードを追加しました。

  • --coverage でフォーマット可能なカバレッジデータを生成するために、 プログラム内のブランチやコールを計測し、カバレッジノートファイルを作成します。 gcov を使用して、テストカバレッジを分析することができます。

  • -fsanitize={address,thread,undefined} AddressSanitizer、ThreadSanitizer、UndefinedBehaviorSanitizerのコードサニタイザーをそれぞれ有効にします。 これらは、実行時に様々な種類のエラーをチェックするためにプログラムをインストルメントする。

以前、この回答では -ftrapv に取って代わられました。 -fsanitize=signed-integer-overflow で有効なサニタイザーの一つである。 -fsanitize=undefined .