有关gcc编译警告的小疑点
有关gcc编译警告的小问题C/C++ codechar *test_strstr(char *target, char *buf){return strstr(target, b
有关gcc编译警告的小问题
C/C++ codechar *test_strstr(char *target, char *buf){ return strstr(target, buf);}char *test_strchr(char cc, char *buf){ return strchr(buf,cc);}char * test_strcasestr(char *target, char *buf){ return strcasestr(target, buf);}
编译时有警告,最后一行改成return (char *)strcasestr(target, buf);就行了,有必要吗?为何第一个函数不需要改
ps 对于一个程序,警告是不是越少越好
[解决办法]#define _GNU_SOURCE
#include <string.h>
char *strcasestr(const char *haystack, const char *needle);
用于在c串haystack中查找c串needle,忽略大小写。如果找到则返回needle串在haystack串中第一次出现的位置的char指针
在实际的应用中如果只加上头文件,当编译时会出现 warning: assignment makes pointer from integer without a cast
这是因为函数的声明在调用之后。未经声明的函数默认返回int型。
因此要在#include所有头文件之前加
#define _GNU_SOURCE ,以此解决此问题。