컴파일 리턴값 워닝 관련 질문 입니다.
글쓴이: rhymen / 작성시간: 월, 2011/10/31 - 4:47오후
Cast converts default int return type to pointer 요렇게 워닝이 떨어지고
실제 리턴값도 깨지고 있습니다. HP머신이고 컴파일러가 기본 32비트인데 64비트
옵션을 주고 컴파일하니 이런 사단이 나고 있네요. ㅜㅜ
옵션없이 32비트 컴파일 할때는 정상적으로 컴파일 됩니다.
strBody = (char *)malloc(1024); 요런식으로 했을때 케릭터형으로 리턴 되야
하는데 위 워닝 메세지처럼 기본 인터거 타입으로 강제 리턴 되는것 같습니다.
CC 컴파일 옵션으로 -D_REENTRANT 나 -D_HPUX_SOURCE, -D_POSIX_C_SOURCE=199506L,
-D_XOPEN_SOURCE 다 줘봐도 안되는데 아 다른 방법이 없을까요. ㅜㅜ
Forums:
strBody의 타입은 뭔데요?
strBody의 타입은 뭔데요?
당연히 케릭터입니다;;;
케릭터예요.
http://www.unix.com/programmi
http://www.unix.com/programming/37309-help-cast-converts-default-int-return-type.html
위 링크에 같은 사연의 쓰레드가 있는데 해결은 결국 함수 프로토타입을 에러나는 파일의 선두에 추가해줬다는 겁니다.
아마 프로토타입이 없었는데 함수를 사용하면 리턴타입을 디폴트로 취하는 기능이 있나봐요...
함수 프로토 타입이 헤더에 잘 있고 그 헤더를 관련 함수를 사용하는 모든 파일에 잘 인크루드 되어있는지 확인해보면 어떨까요?
위 이야기에서처럼 임시로는 extern 을 사용한 프로토타입을 넣어봐도 되겠지만 임시방편으로만 하시고 헤더파일을 적절하게 만들어서 사용해야... 하지 않을까 싶습니다.
저도 궁금하네요 이게 과연 적절한지요..
Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.
댓글 달기