deprecated conversion from string constant to ‘char*’
이 에러 책에있는거 똑같이 해도 warning으로 뜨고 코딩할대마다 저런경고메시지뜨네 ..
댓글 11
char *msg = "hello world"라고 하지 말고 앞에 const붙히라고 밑에랑 똑같은 애인가?
익명(77.245)2015-05-21 19:45
"..."로 표현되는 문자열 상수(string literal)는 const char * 타입인데 그걸 쓰기 가능한 char *로 자동 형변환시키려고 하니 경고 띄워주는 거임. 돌아가는 데 문제가 없다면 무시해도 되는데 왠만하면 문제되는 변수의 타입을 char *에서 const char *로 바꿔줘라. 돌아가는 데 문제가 없다는 건 write를 안한다는 거니까 const 처리해도 무방하잖아.
ㅅㅅㅅ(125.128)2015-05-21 19:45
변수면 변수 타입을 const char *로, 함수의 매개 변수면 매개 변수를 const char *로 고치라는 말임.
ㅅㅅㅅ(125.128)2015-05-21 19:46
근데 윤성우는 이 메시지를 모르고있었나 저렇게 코딩한거 존나많던데
ㅁㅁ(112.144)2015-05-21 19:48
구형 C 컴파일러에서는 저거 경고 안 띄워줬었음. 예를 들어 Visual C++ 6.0. 윤성우 책이 그 당시에 나왔을 거야. 뭐 윤성우도 책 개정판 내면서 최신 컴파일러로 돌려 봤겠지만 초보자들한테 엄격하게 const char *로 알려주고 이러면 어려워질까봐 내용을 뺀 걸 지도 모르겠음. 근데 내 생각엔 처음 가르칠 때부터 제대로 알려주는 게 맞다고 봄.
ㅅㅅㅅ(125.128)2015-05-21 19:50
저거 제대로 안 짚고 넘어가면 char *str = "hello"; 하고 str[0] = 'i'; 하면 왜 프로그램이 오류나요? 라고 물어볼 색기들이 생겨나니깐.
ㅅㅅㅅ(125.128)2015-05-21 19:51
ㅅㅅㅅ 님// 그럼, char *str = "hello"; 하고 str[0] = 'i'; 같은 작업을 할 수 있게 하는 방법은 없나요? 저는 스트링 변경에 대해 관심이 많은데..
char *msg = "hello world"라고 하지 말고 앞에 const붙히라고 밑에랑 똑같은 애인가?
"..."로 표현되는 문자열 상수(string literal)는 const char * 타입인데 그걸 쓰기 가능한 char *로 자동 형변환시키려고 하니 경고 띄워주는 거임. 돌아가는 데 문제가 없다면 무시해도 되는데 왠만하면 문제되는 변수의 타입을 char *에서 const char *로 바꿔줘라. 돌아가는 데 문제가 없다는 건 write를 안한다는 거니까 const 처리해도 무방하잖아.
변수면 변수 타입을 const char *로, 함수의 매개 변수면 매개 변수를 const char *로 고치라는 말임.
근데 윤성우는 이 메시지를 모르고있었나 저렇게 코딩한거 존나많던데
구형 C 컴파일러에서는 저거 경고 안 띄워줬었음. 예를 들어 Visual C++ 6.0. 윤성우 책이 그 당시에 나왔을 거야. 뭐 윤성우도 책 개정판 내면서 최신 컴파일러로 돌려 봤겠지만 초보자들한테 엄격하게 const char *로 알려주고 이러면 어려워질까봐 내용을 뺀 걸 지도 모르겠음. 근데 내 생각엔 처음 가르칠 때부터 제대로 알려주는 게 맞다고 봄.
저거 제대로 안 짚고 넘어가면 char *str = "hello"; 하고 str[0] = 'i'; 하면 왜 프로그램이 오류나요? 라고 물어볼 색기들이 생겨나니깐.
ㅅㅅㅅ 님// 그럼, char *str = "hello"; 하고 str[0] = 'i'; 같은 작업을 할 수 있게 하는 방법은 없나요? 저는 스트링 변경에 대해 관심이 많은데..
인터프린터 언어는 쉽게 되려낭...
ㅇㅇ//붙히라고->붙이라고
ㅅㅅㅅ//왠만->웬만
http://dblack.tk
커뮤니티 사이트 입니다 많은 이용 부탁 드립니다.