[解決済み] C言語プログラムで、警告が表示される。"ステートメントに効果がありません"
2022-02-18 01:58:56
質問
あるプログラムをコンパイルする際に
-Wall
という警告が表示されます。
expcal.c:66:5: warning: statement with no effect [-Wunused-value]
この警告は、その行を参照しています。
ed.operator[j] == str[i];
で、以下のループの中にあります。
for(i=0;i<strlen(str);i++)
{
j=0;
if(str[i] == '+' || str[i] == '-' || str[i] == '*')
{
if(str[i+1] == '+' || str[i+1] == '-' || str[i+1] == '*')
return 0;
else
{
//j=0;
ed.operator[j] == str[i];
count++;
j++;
}
}
}
この警告は、代入文に何か問題があるときに発生することは知っています。GCCがこのような警告を発生させるような、上のコードのどこがおかしいのでしょうか?
解決方法は?
ステートメント
ed.operator[j] == str[i];
を使った比較です。
==
. これを課題にするには、次のように書いてみてください。
ed.operator[j] = str[i];
この警告は、比較が決して使用されない値を生成することを意味し、その文はプログラム上で目に見える効果を持ちません。 これは、おそらく副作用のあるものに書き直した方が良いというヒントです。
お役に立てれば幸いです。
関連
-
[解決済み】ISO C90では、C言語での宣言とコードの混在が禁止されています。
-
[解決済み】Cygwin - Makefile-error: ターゲット `main.o' のレシピに失敗しました。
-
[解決済み】cudamalloc()の使用。) なぜダブルポインタなのか?
-
[解決済み】メモリー・クロバリング・エラー
-
[解決済み】未定義参照 makefile が間違っているのかも?
-
[解決済み】宣言指定子で2つ以上のデータ型がある場合のエラー【非公開
-
[解決済み] C 警告 効果のないステートメント
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] C++でextern "C "を使用した場合の効果は?
-
[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 `S_ISREG()` とは何ですか、そして何をするのですか?
-
[解決済み】 error: too few arguments to function `printDay' (C言語)
-
[解決済み] clang: error: linker command failed with exit code 1が表示されるのはなぜですか?
-
[解決済み】メモリー・クロバリング・エラー
-
[解決済み】Linuxでexeclp()がどのように動作するのか理解できません。
-
[解決済み] エラー:整数が期待されるところで集約値が使用された
-
[解決済み】MPI通信でMPI_Bcastを使用する場合
-
[解決済み】int型配列へのポインタのスカラ・イニシャライザの過剰要素
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み】.axfファイルとは何ですか?