問題タブ [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.

0 投票する
1 に答える
210 参照

gcc - エラーがない場合にのみ gcc 警告

エラーがない場合にのみ、gcc にすべての警告を表示するように (-Wall のように) 指示することはできますか? エラーがある場合 - それらのみを表示します。

0 投票する
3 に答える
6080 参照

c - ストレージ クラスとタイプに関する奇妙な GCC 警告

次のようなヘッダーファイルがあります

header.h

このファイルは 1 つのコード ファイルによってインクルードされています

code.c

code.c をコンパイルすると、GCC が警告を発行します。

code.c:3:1: 警告: データ定義に型またはストレージ クラスがありません [デフォルトで有効]

この警告の原因がわかりません。code.c で TOS を宣言して定義するのと同じではありませんか? すなわち

code.c

0 投票する
6 に答える
4171 参照

c++ - switch/case ステートメントで中断せずに警告 (または失敗) するように gcc に指示するにはどうすればよいですか?

複雑なステートメントがあり、s の末尾にswitcha を付けるのを忘れていました。これは非常に合法であり、その結果、次の.breakcasecase

break私が声明を出すのを怠った場合、gccに警告する(またはもっと良いことに失敗する)方法はありますか?

この質問に例示されているように、多くの有効なユースケースがあることを認識しています (そして、コードで頻繁に使用しています)。ここで抜けたい」

gccにこれを行うように指示する方法はありますか?

0 投票する
2 に答える
1502 参照

c - GCC 4 で構造体の初期化が失敗する

x86_64 Linux ボックスで GCC 4.5.3 を使用して構造体を初期化すると、非常に奇妙な問題が発生します。

問題のコード:

apr_finfo_t はかなり複雑な構造体です。私はそれが17の複雑な他のメンバーを持っていると言います.

この部分を GCC 4.5.3 および-std=c99 -pedantic -Wextraでコンパイルすると、次の警告メッセージが表示されます。

明らかに、GCC は最初のメンバーを初期化しようとしますが、すでに 2 番目のメンバーをチョークしています。-W / -Wextraでビルドしない場合、この警告は発生しません。

各メンバーを手動で初期化することもできましたが、それは奇妙で間違っているように思えます。

Google 検索から収集できたものから、この初期化は完全に合法であり、GCC 3 が機能するというレポートがあるようです。ただし、GCC 4.5 または 4.1 ではありません。

誰かが助けてくれることを願っています。:)

よろしくお願いします、

ミハイ

0 投票する
3 に答える
6922 参照

c - 両方の警告を最適に修正する方法 (古いスタイルの c 関数宣言はプロトタイプではありません)

私は、引数を取らない多くの関数を含む他の誰かのコードの一部の関数を修正していました。彼らは次のように宣言されました

return_type_t func(void); の代わりに

次に、これらの多くが関数ポインターを持つ構造体の配列に入れられていることがわかりました。voidを取るように関数ポインタを修正したとき、関数の1つがvoid ptrではなくchar*を取ったため、別の警告が表示されました。

大規模な書き換えを行わずにこの種のことを行うための最良の解決策は何ですか (コードが複雑であるため、主にエッジの周りをクリーンアップしていて、フローの変更を避けたいと考えています)。

0 投票する
0 に答える
94 参照

eclipse - eclipse Helios の並べ替え - 複数行の警告の説明 (gcc の複数行の警告)

プロジェクトを gcc コンパイラでコンパイルします。複数行の警告の例の 1 つは次のとおりです。

しかし、問題ビュー (説明) で正しく読み取ることができません。私が得るのは3つの異なる警告です。ソート方法に従って、すべての行が異なる場所にあります。

ソートせずにこの出力を表示する方法はありますか? 分割を回避する gcc フラグがあるかもしれません。

0 投票する
4 に答える
1984 参照

ios - ファイルごとに -Wno-protocol を抑制する方法

すべてのプロトコルのメソッドを別のターゲットに転送する Objective-C プロトコルの実装があります。このクラスがプロトコルのメソッドを実装していることをコンパイラが警告することを除いて、エベレシングは問題ありません。#pragma diagnostic を使用してこの警告を抑制しようとしています:

しかし、コンパイラは「不明な警告グループ '-Wno-protocol'」と警告します

0 投票する
3 に答える
7351 参照

c - 警告:フォーマット%sはchar *型を期待していますが、引数2はint型です

私はすでに他の関連する質問を見ました、そしてそれらのどれもこのケースを助けませんでした。
質問のタイトルに警告が表示されています。コードmainは次のとおりです。

ユーザーは、にスキャンされる番号(たとえば、4)を入力する必要がありますn。スペースは電話パッドの列のためにmallocされています。次に、ユーザーnは電話パッドの構成の行数を入力します。例は次のとおりです。

123
456789.0 。
_

printfそのため、最後のステートメントでこのエラーが発生する理由について混乱しています。

注:私も試しscanf("%s", rows[i]);ました:それでもエラーが発生しました。
注2:とにかくプログラムを実行してみました。セグメンテーション違反が発生しました。
注3:.cプログラムの先頭にあります#include <stdio.h>。 注4:私はそのようにプログラムをgccしました:。#include <stdlib.h>
gcc -ansi -pedantic -Wall tele.c

お手伝いありがとう。

0 投票する
0 に答える
112 参照

c++ - Boost 1.47 を使用する C++ プロジェクトで -Weffc++ を有効にした後の警告

重複の可能性:
ライブラリ ヘッダーからの GCC 警告を抑制する方法は?

-Weffc++ コンパイラ スイッチをアクティブにしたところ、boost ライブラリに関連する文字通り大量の警告が表示されます。

最初の警告は次のとおりです。

自分のコードをより良くしたかったのですが、ユーザーが生成した以外のヘッダー ファイルに対してコンパイラが警告を発行するのを止めるにはどうすればよいですか?

または、検索の深さを制限する方法はありますか? ブースト インクルードは非常にネストされているため、これが役立つ場合があります (上記の警告を参照)。