当我调用这个函数时,即使它们正在被使用,我也会收到错误消息。有人可以解释一下:
Run Code Online (Sandbox Code Playgroud)pointers.c:30:5: warning: expression result unused [-Wunused-value] *a++; ^~~~ pointers.c:39:9: warning: expression result unused [-Wunused-value] *s++; ^~~~ pointers.c:40:9: warning: expression result unused [-Wunused-value] *b++; ^~~~ pointers.c:48:7: warning: expression result unused [-Wunused-value] *s++; ^~~~
int strend(char *s, char *b){
char *temp = b;
while(*s != '\0'){
if(*s == *b){
while(*s == *b && *b != '\0' && *s != '\0'){
*s++;
*b++;
if(*b == '\0')
printf("wrong");
printf("compare: %c, %c\n", *s, *b);
printf("equal: %d\n", *s == *b);
}
}
else{
*s++;
}
printf("check %c, %c\n", *s, *b);
if(*b == '\0' && *s == '\0'){
return 1;
}
else{
b = temp;
}
if(*s == '\0')
printf("bazinga");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您也取消引用指针,而不仅仅是增加它。该取消引用将为您提供旧指针(在增量之前)指向的值,但您不使用该值,从而导致警告。
简单的解决方案?不要使用解引用运算符*。