Как использовать GethostbyName в c
-
25-10-2019 - |
Вопрос
Я пытаюсь использовать функцию GethostbyName, но мой код:
int handleTCP(char *hostname, char* portNo){
struct hostent *hp = gethostbyname(hostname);
...
}
Продолжает возвращаться:
21: warning: initialization makes pointer from integer without a cast
Кто -нибудь знает, что не так с моим синтаксисом?
Благодарность
Решение
Вы забыли #include <netdb.h>
. Анкет Поскольку вы не включили этот файл, вы сталкиваетесь с правилом «по умолчанию int». По сути, в C, если функция не имеет прототипа, предполагается, что это:
int function_name();
Другими словами «возвращает Int, берет неизвестное количество параметров».
Правильное объявление прототипа функции (в данном случае, включив заголовок), будет избежать этого.
Другие советы
Я думаю, ты забыл включить netdb.h
Заголовок, так что компилятор ничего не знает о gethostbyname
Функция и предполагает, что он возвращает целое число. Тогда это жалобы, потому что в этом случае вы бы преобразовали целое число в указатель. Вам необходимо включить заголовок, чтобы предоставить компилятор с правильной информацией типа.