39

Microsoft コンパイラでは、他の警告を無効にすることなく、特定の警告を #pragma で無効にすることができます。これは、コンパイラが「実行する必要がある」ことについて警告する場合に非常に便利な機能です。

この時点でGCCには同様の機能がありますか? この機能がまだ搭載されていないことが想像できないほど明らかな機能のように思えますが、Web 上の古い情報によると、この機能は存在しないことが示唆されています。

GCCで使用するものは何ですか?

具体的には、'abc' のような複数文字の定数を使用するのが好きです。これらは 256 進数として効果的に評価されます。これは非常に便利な機能ですが、警告がトリガーされます。case ステートメントで 4 つの文字列を切り替える場合に非常に便利です。

4

3 に答える 3

25

GCCマニュアルから:

多くのオプションには、-f または -W--- で始まる長い名前が付いています。たとえば、-fforce-mem、-fstrength-reduce、-Wformat などです。これらのほとんどには、正と負の両方の形式があります。-ffoo の否定形は -fno-foo になります。このマニュアルでは、これら 2 つの形式のうち、デフォルトでない方の 1 つだけを説明します。

しかし、ソース レベルの警告の無効化があるかどうかを尋ねている場合、その機能が GCC に存在するかどうかはわかりません。

于 2009-07-03T16:14:42.827 に答える
13

-Wno-multichar :

複数文字定数 ('FOOF') が使用されている場合に警告しません。通常、それらは実装定義の値を持っているため、ユーザーのコードのタイプミスを示しており、移植可能なコードでは使用しないでください。

詳細情報.

于 2009-07-03T16:16:03.437 に答える
13

ソース コード内に、次のように記述します。

#pragma GCC diagnostic ignored "-Wno-multichar"

// Code with warnings, but they won’t be displayed now...
于 2016-07-20T20:49:30.387 に答える