2011-11-29 1 views
2

C에서 gethostbyname까지도를 사용하는어떻게 함수 gethostbyname까지도를 사용하려고하지만, 내 코드있어

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

사람이 내 구문에 어떤 문제가 있는지 알고 있나요?

감사

+0

Evan의 대답이 문제가 아니라면 더 많은 코드를 표시하십시오. 특히 21 번 라인이 우리에게 표시되는 코드인지 확인하십시오. –

+0

코드 상단에'#include '가 있습니까? –

+0

@OliCharlesworth : netdb.h 만 있으면됩니다. –

답변

3

당신은 #include <netdb.h>를 잊어 버렸습니다. 이 파일을 포함하지 않았기 때문에 "기본 int"규칙을 실행하고 있습니다. 기본적으로 C에서 함수에 프로토 타입이없는 경우 다음과 같이 가정합니다.

int function_name(); "다른 매개 변수를 반환합니다."

함수 프로토 타입 (이 경우 헤더 포함)을 적절히 선언하면이 문제를 방지 할 수 있습니다.

+0

감사. 이 문제가 해결되었습니다. 나에 의한 어리석은 실수. – KWJ2104

0

netdb.h 헤더 파일을 포함하는 것을 잊었 기 때문에 컴파일러는 gethostbyname 함수에 대해 아무것도 모르고 정수를 반환한다고 가정합니다. 그렇다면 그것은 정수로 포인터를 변환했을 것이기 때문에 불평합니다. 올바른 유형 정보를 컴파일러에 제공하려면 헤더를 포함해야합니다.