Frage

Ich versuche, den Funktions -GetHostByName zu verwenden, aber mein Code:

int handleTCP(char *hostname, char* portNo){

    struct hostent *hp = gethostbyname(hostname);

    ...

}

Kehrt weiter zurück:

21: warning: initialization makes pointer from integer without a cast

Weiß jemand, was mit meiner Syntax los ist?

Danke

War es hilfreich?

Lösung

Du hast es vergessen #include <netdb.h>. Da Sie diese Datei nicht hinzugefügt haben, rennen Sie in die Regel "Standard int". Grundsätzlich wird in C angenommen, wenn eine Funktion keinen Prototyp hat, es wird angenommen:

int function_name(); Mit anderen Worten "gibt eine int zurück, nimmt unbekannte Anzahl von Parametern".

Die ordnungsgemäße Deklonation des Funktionsprototyps (in diesem Fall durch Einbeziehung des Headers) wird dies vermieden.

Andere Tipps

Ich denke, Sie haben vergessen zu einbeziehen netdb.h Header -Datei, so dass Compiler nichts weiß gethostbyname Funktion und nimmt an, dass es Ganzzahl zurückgibt. Dann beschwert sich es, weil Sie in diesem Fall Ganzzahl in einen Zeiger konvertiert hätten. Sie müssen einen Header einfügen, um den Compiler mit korrekten Typinformationen zu versorgen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top