strcasestr() ((!!!)warning)

Модератор: Модераторы разделов

Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

strcasestr()

Сообщение Asgard »

есть библиотека, использующая функцию strcasestr, которая в теории должна возвращать указаль на найденный элемент в строке в случае успешного поиска, в противном случае она должна возвращать NULL.

из man 3 strstr
char *strcasestr(const char *haystack, const char *needle);
/*...*/
RETURN VALUE
These functions return a pointer to the beginning of the substring, or NULL if the substring is not found.
/*...*/


вывод компилятора:
gcc -ggdb main.c errors.c url.c
url.c: In function 'url_get_scheme':
url.c:240: warning: comparison between pointer and integer

Compilation finished at Tue Mar 21 17:39:06


в строке 240 находится код вида:

Код: Выделить всё

/*...*/
if(strcasestr(string, "substring") == NULL)
/*...*/


причём если использовать strstr, компилятор перестаёт ругаться.

в пригципе всё работает нормально, но меня смущает этот варнинг... может быть кто-нибудь знает, в чём проблема?
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
Аватара пользователя
oav
Бывший модератор
Сообщения: 296

Re: strcasestr()

Сообщение oav »

if(!strcasestr(string, "substring"))
...


так тоже воспроизводится?
Спасибо сказали:
Аватара пользователя
Jan2ary
Бывший модератор
Сообщения: 630
Статус: Тщедушный очкарик

Re: strcasestr()

Сообщение Jan2ary »

strcasestr возвращает указатель, а NULL скорее всего определен через define как целочисленная константа, например -1.
Не шалю, никого не трогаю, починяю примус...
Спасибо сказали:
Аватара пользователя
oav
Бывший модератор
Сообщения: 296

Re: strcasestr()

Сообщение oav »

Jan2ary писал(а):
21.03.2006 17:51
strcasestr возвращает указатель, а NULL скорее всего определен через define как целочисленная константа, например -1.

Не, скорее как (int)0
Спасибо сказали:
Аватара пользователя
Jan2ary
Бывший модератор
Сообщения: 630
Статус: Тщедушный очкарик

Re: strcasestr()

Сообщение Jan2ary »

Ааааа, ну да. Привык что в sql и в java функции подобного рода возвращают числовой индекс подстроки.
Ну вот и оно - сравнение целого и указателя.
Не шалю, никого не трогаю, починяю примус...
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: strcasestr()

Сообщение Asgard »

понял.
всем спасибо за помощь.
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали: