C 언어 각 타입에 대한 출력에 대해서 질문 입니다.

gdhome의 이미지

안녕하세요

막 입문한 초보자입니다 :)

다름이 아니라 궁금한점이 있는데 책에 나온 예제를 보다보니

regexec(&re, string, MAX_NUM, match, 0);

라는 정규식 표현을 쓰면

printf("%d", match[0].rm_so);

로 시작 오프셋을 찍는 것으로 쓰여있는데요

컴파일시 당연한 소리겠지만 타입이 맞지 않다는 워닝이 나옵니다.

실제 돌려보면 잘 돌아가지만 이렇게 경고 메시지가 나오는 경우는 그냥 무시해도 넘어가도 되는 부분인가요?

즉 정상적인 경우라고 가정하고 그냥 넘어가도 돼는 것인지 궁금하네요 :)

cinsk의 이미지

rgbi3307의 이미지

어떻게 나왔는지 메세지를 보시면 더 정확히 판단할 수 있겠는데,

printf("%d", match[0].rm_so);

위의 문장에서 경고 메세지가 나왔다면, rm_so의 데이터 타입이 정수형이 아닐 수 있습니다.
입출력간에 데이터 타입(char, int, float, double, void, signed, unsigned 등..)의
불일치는 경고메세지만 나오고 실행은 됩니다만, 정확한 수치가 필요한 부분에서는
오차가 발생할 수 있으므로 상호 정확히 일치시켜 주시는 것이 좋겠습니다.

From:
*알지비 (메일: rgbi3307(at)nate.com)
*학창시절 마이크로마우스를 만들었고, 10년동안 IT관련 개발자로 일하고 있음.
*틈틈히 커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))

From:
*알지비 (메일: rgbi3307(at)nate.com)
*커널연구회(http://www.kernel.bz/) 내용물들을 만들고 있음.
*((공부해서 남을 주려면 남보다 더많이 연구해야함.))