오버플로우와 형 변환 질문입니다.
, 최 봉준님이 작성책 내용을 다소 벗어난 표준과 관련된 질문이 될 것 같아 해당 게시판의 성격에 부합되지 않을 수 있겠다는 생각에 조심스럽지만 궁금한 나머지 글을 작성하게 되었습니다..^^;
연산 결과값이 30억이고 피연산자의 자료형이 int형이라면, 이는 오버플로우 이고 undefined behavior입니다. 반면 30억이라는 값이 int형으로 변환될 때에는(가령 int형 변수 a에 30억이라는 값이 대입될 때에는)implemention defined입니다. 여기서 궁금한 것이 연산 결과값이 피연산자의 자료형인 int형으로 표현되어야 하는것과, 30억이라는 값이 변환에 의해서 int형으로 표현되어야 하는 것은 둘 다 같은 것 같은데, 왜 전자는 undefined behavior이고 후자는 implemention defined 인가요?
회신: 오버플로우와 형 변환 질문입니다.
, 도장_ 관리자님이 작성C 언어 명세서를 두고 '이럴 것이다'라는 해석을 붙이는 것은 어렵습니다. 언어 설계자의 해설이 필요한 부분인 것 같습니다.
감사합니다.