-Wcast-qual在stristr()的返回行上输出此警告.问题是什么 ?
warning: cast discards qualifiers from pointer target type
char *stristr(const char *string,const char *substring) { size_t stringlength = strlen(string); char *stringlowered = malloc(stringlength + 1); strcpy(stringlowered,string); tolower2(stringlowered); // in my source it has a different name,sorry. char *substringlowered = malloc(strlen(substring) + 1); strcpy(substringlowered,substring); tolower2(substringlowered); // in my source it has a different name,sorry. const char *returnvalue = strstr(stringlowered,substringlowered); if(returnvalue != NULL) { size_t returnvaluelength = strlen(returnvalue); returnvalue = string; returnvalue += stringlength - returnvaluelength; } free(stringlowered); free(substringlowered); return (char *)returnvalue; }
编辑:
在glibc 2.15的strstr()源代码中:
return (char *) haystack_start; // cast to (char *) from const char *