問題タブ [gcc-warning]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - GCCでの「比較は常にfalse...」警告の修正
簡単に修正できる問題が発生していますが、途方に暮れています...
次のコードを実行するテンプレートがあります。
明らかな理由で、このコードが符号なし型用にコンパイルされると、GCCは警告を出します(データ型の範囲が限られているため、比較は常にfalseです)。私はこの背後にある理由を完全に理解しており、numeric_limitsチェックを入れて、コンパイラーにシャットダウンさせることができるかどうかを確認しました(MSVCでは機能しました)。悲しいかな、GCCの下で私は警告を受けます。この警告を修正する方法はありますか(GCCで実行できるかどうかさえわかりませんが、警告を無効にする以外に)ありますか?とにかくコードが呼び出されることはなく、オプティマイザーもコードをコンパイルすると思いますが、警告を取り除くことはできません。
誰かが私にこれに対する解決策を与えることができますか?
乾杯!
c - 「int」フレーバーの操作に関する疑問
「int」フレーバー(unsigned int、long int、long long int)に関して次の疑問があります。
32ビットシステムと64ビットシステムでintとそのフレーバー(たとえばlong int)の間でいくつかの操作(*、/、+、-)を実行すると、「int」に対して暗黙の型キャストが発生します。
例えば :-
int x; long long int y = 2000;
x = y; (上位が下位に割り当てられ、1つのデータが切り捨てられる可能性があります)コンパイラがこれについて警告することを期待していますが、そのような警告は表示されません。これは、ここで「x」に対して暗黙の型キャストが発生したためですか。-Wallオプションを指定してgccを使用しています。動作は32ビットと64ビットで変更されますか。
ありがとうArpit
c++ - GCC で外部ライブラリ/サードパーティの警告を排除する方法
私が取り組んでいるソフトウェア プロジェクトでは、悲しいことに、迷惑な gcc 警告を生成する特定のサード パーティ ライブラリを使用しています。警告のすべてのコードをクリーンアップするように努めており、GCC で警告をエラーとして扱う (-Werror) フラグを有効にしたいと考えています。これらのサードパーティによって生成された、修正できない警告を非表示にする方法はありますか?
c - 文字列 C の最初の文字を削除
文字列の最初の文字を削除して残りを保持しようとしていますが、現在のコードはコンパイルされず、修正方法について混乱しています。
私のコード:
Gcc: "警告: return はキャストなしで整数からポインターを作成します"
また、「char * newStr (char * charBuffer)」は同じままにする必要があります。
c - gcc警告:スカラー初期化子を中括弧で囲みます
以下に定義するルックアップテーブルがあり、GCCを使用しています。コンパイルすると、次のような警告が表示されます
この警告はどういう意味ですか?このLUTをどのように初期化する必要がありますか?この構造の初期化を間違えていますか?
ヘルプ!!
c++ - 符号あり/符号なしの比較と -Wall
最近、コードの品質を向上させるために -Wall コンパイラ スイッチを使い始めました。この小さなスニペットについて(正しく)警告を発しています...
number1.array.size は署名されていないためです (これは std::vector の size メソッドです)。ループ内のテストは i >= 0 であるため、署名する必要があります。そうしないと機能しません。3 つの選択肢があるようです。-Wall の使用を控える、警告を無視する、または補助的な要素を導入する...
これらのどれも特に望ましいとは思えません。この場合、私が何をすべきかについて、代替案を提案したり、推奨したりできますか?
nginx - LinuxでNginxをビルドするときに既知の警告を抑制する方法は?
私は Linux のアマチュアで、初めて Debian (Lenny) で nginx を構築しようとしています。
nginx をビルドしようとすると失敗し、sys_errorlist と sys_nerr に関する既知の警告が表示されます ( http://nginx.org/en/docs/sys_errlist.html )。
ドキュメントは、これが無視できる警告であることを示唆しています。私の質問は、これらの警告を無視するように makeに含める必要があるフラグは何ですか?
私は本当の手がかりがない状態でフラグのオプションを注いでいますが、検索は、警告を無視できることを教えてくれるところまでしか行きません. 当然の答えかもしれませんが、おそらく投稿されたものが見つからないので、私より賢い人に聞いています。ありがとう...
c++ - g ++警告:符号なし式の比較<0は常にfalseです
C ++コードをコンパイルするには、-W
フラグを使用します。これにより、警告が発生します。
警告:符号なし式の比較<0は常にfalseです
これはバグと見なされ、バージョンGCC 4.3で修正されたと思いますが、GCC4.1を使用しています。
ここで明らかに不快なコード:
警告が表示されます:
dbtempl.cpp:メンバー関数内'void ECONZ :: FieldGroup :: generateCreateMessage(const nz :: co :: econz :: eventServer :: ApiEvent :: GroupData&、ECONZ :: omsgstream&)const':dbtempl.cpp:480:警告:符号なし式の比較<0は常にfalseです
これらの警告が表示されないようにするにはどうすればよいですか?-W
旗を外したくない。
c - Cで「未使用のパラメータ」警告を抑制するにはどうすればよいですか?
例えば:
/*...*/
C++ では、パラメーターの周りにコメントを付けることができました。もちろん、Cではエラーが発生します。
エラー: パラメータ名が省略されました
c - void にキャストしても warn_unused_result エラーが削除されない
stderr
テストでは、テストケースの出力が乱雑になるため、何も破棄しています。私は次のコードを使用しています:
でコンパイルすると-Wall -Werror
、エラーが発生します
これは期待されています。ただし、キャストする通常のソリューションは機能してvoid
いないようです。つまり、コードを次のように変更します。
それでも同じ警告が生成されます。最悪のシナリオは少し余分な出力になるため、この関数が失敗してもかまいません。これを修正できる他の方法はありますか?
編集:余分な不要な変数を導入できることはわかっています。void へのキャストが機能しない理由を知りたいです。
更新: 私はこれで行くことにしました:
freopen
ドキュメントをより注意深く読んだ後、開く/dev/null
ことができなかった場合stderr
でも破棄されることがわかりました。これはその問題を解決します。