[解決済み] c関数内の「計算された値が使用されていない」ポインタ
2022-02-18 21:01:37
質問
文字列(単語文)を要求された長さに短縮する関数を書きました。文の切れ目がたまたま一語の真ん中に来ないようにしたい。そこで、私はスペースに到達するまでn文字後ろにスキップし、そこで文の文字列をカットしています。 私の問題は実際には問題ではなく、私の関数をコンパイルすると、"warning: value computed is not used"という警告が表示されます(コード内のコメント行を参照)。しかし、この関数は期待通りに動作します。 私は目が悪いのか、それともプロジェクトに長く居座りすぎているのか、実はこの警告が理解できないのです。どなたか、この関数の欠陥を指摘していただけませんか?
char *
str_cut(char *s, size_t len) {
char *p = NULL;
int n = 3;
p = s + len;
if (p < (s + strlen (s))) {
/*
* do not cut string in middle of a word.
* if cut-point is no space, reducue string until space reached ...
*/
if (*p != ' ')
while (*p != ' ')
*p--; // TODO: triggers warning: warning: value computed is not used
/* add space for dots and extra space, terminate string */
p += n + 1;
*p = '\0';
/* append dots */
while (n-- && (--p > s))
*p = '.';
}
return s;
}
開発機のコンパイラは "gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)" を使用しています。
解決方法を教えてください。
この警告は
*
(参照解除) -- 参照解除された値をどこにも使っていない。ただ、それを作るだけです。
p--;
と表示され、警告が消えるはずです。
関連
-
[解決済み】変数の警告が設定されているが使用されていない
-
[解決済み】fgetsによるセグメンテーションフォールト(コアダンプ) - と思う。
-
[解決済み] 型付けされた関数ポインタ?
-
[解決済み] GCCで「文字列定数から'char*'`への非推奨の変換」という警告を消すにはどうしたらいいですか?
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] C言語で関数をパラメータとして渡すにはどうすればよいですか?
-
[解決済み] ポインタの「デリファレンス」とはどういう意味ですか?
-
[解決済み】C言語の関数ポインタはどのように機能するのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】"Expected expression before ' { ' token"(トークンの前に期待される式)。
-
[解決済み】エラー。非スカラー型への変換を要求された
-
[解決済み】 「配列のイニシャライザーはイニシャライザーリストまたは文字列リテラルでなければなりません」と表示されるのですが?
-
[解決済み】Linuxでexeclp()がどのように動作するのか理解できません。
-
[解決済み] [Solved] .Cファイルをコンパイルしています。アーキテクチャ x86_64 の未定義シンボル
-
[解決済み】エラー:呼び出されたオブジェクトは、関数または関数ポインタではない
-
[解決済み】makefile:4。*** missing separator. 停止する
-
[解決済み] Cプログラムで「配列の添え字が整数でない」。
-
[解決済み】c - 警告:関数 'printf'の暗黙の宣言
-
[解決済み】whileループの時間複雑性(Big O)はどうやったらわかるの?