Вопрос

Я пытаюсь использовать функцию 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 Функция и предполагает, что он возвращает целое число. Тогда это жалобы, потому что в этом случае вы бы преобразовали целое число в указатель. Вам необходимо включить заголовок, чтобы предоставить компилятор с правильной информацией типа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top