cでgethostbynameの使用方法
-
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>
. 。このファイルを含めなかったため、「default int」ルールにぶつかります。基本的に、cでは、関数にプロトタイプがない場合、それは次のと想定されています。
int function_name();
言い換えれば、「INTを返す、不明な数のパラメーターを取得します」。
関数プロトタイプ(この場合はヘッダーを含めることで)を適切に宣言すると、これは回避されます。
他のヒント
含めるのを忘れたと思います netdb.h
ヘッダーファイル、コンパイラが何も知らないように gethostbyname
機能し、整数を返すと仮定します。その場合、整数をポインターに変換したため、苦情があります。コンパイラに正しいタイプ情報を提供するヘッダーを含める必要があります。
所属していません StackOverflow