在c函数中指针“未计算值”

我写了一个函数,用于缩短请求长度的字符串(单词的句子)。 我不希望句子的剪切恰好在一个单词的中间。 所以我跳过n个字符,直到我到达一个空格并在那里剪切句子串。 我的问题不是一个真正的问题,编译我的函数时会发出一条警告:“警告:未使用计算值”,请参阅代码中的注释行。 该function虽然按预期工作。 所以,无论是我是盲目的,还是我长期坚持我的项目,实际上我不明白这个警告。 有人可以指出我在function上的缺陷吗?

char * str_cut(char *s, size_t len) { char *p = NULL; int n = 3; p = s + len; if (p  s)) *p = '.'; } return s; } 

我在开发机器上的编译器是“gcc版本4.2.4(Ubuntu 4.2.4-1ubuntu4)”

警告是由* (取消引用)引起的 – 您没有在任何地方使用取消引用的值。 做到这一点:

 p--; 

警告应该消失。

*p--*(p--)相同。

评估减量,然后取消引用该结果。 您实际上并没有对该结果做任何事情,因此警告。 如果你只是说*p你会得到同样的警告。

你只是为副作用这样做

  *p--; 
  • 副作用:减少p
  • 表达式的值:p指向的值

编译器警告你没有使用表达式的值:-)