데이터 형변환에 대한 질문입니다.
글쓴이: ssif / 작성시간: 금, 2005/07/15 - 2:30오후
구조체를 다음과 같이 선언/정의 했습니다.
struct login { char lin[LOGIN_LIN]; char login_id[LOGINBUF]; char login_pw[LOGINBUF]; };
struct login Login;
이것을 send()로 보내려고 합니다.그래서 다음과 같이 했습니다.
send(hSocket,(char *)&Login,sizeof(Login),0);
send() 의 원형은 다음과 같이 되어있는것을 확인했습니다.
int send( SOCKET s, const char* buf, int len, int flags );
두번째 인자의 데이터형이 const char* 인데 단순히 char*로만 형변환을 해주어도 되는지 궁금합니다.컴파일은 이상없이 되고있습니다.컴파일 환경은 윈도우 버전 dev c++ 4.9.9.2에 있는 gcc를 사용했습니다.
Forums:
const
const 는 상수화에 관한걸로 알고있습니다..
send 에 원형에서 두번째 인자가 const char* buf 이므로 넘겨누는 LOGIN struct에 대하여 send안에서 상수화되어진다를 의미합니다.
^^
첫 답글이네요
저희 업소를 방문해 주셔서 감사합니다.
상관없습니다. char* -> const char * 은 가능합니다
상관없습니다. char* -> const char * 은 가능합니다.
반대로 const char * -> char *은 const_cast<..>를 해주어야하지만요.
--
Passion is like genius; a miracle.
BarracuTa님의 설명을 보완하자면, 'send 안에서 상수화된다'는
BarracuTa님의 설명을 보완하자면, 'send 안에서 상수화된다'는 말의 실뜻은, send 안에서 buf 값이 변경되지 않을테니 안심해라는 것이죠.
pool007님의 설명에서처럼 const char*가 char*로 변환되지 않는 것은 그 반대의 이유일 것이구요.
----------------------------
May the F/OSS be with you..
댓글 달기