오버플로우 처리는 누가 해주는건가요?
글쓴이: bureokjam / 작성시간: 금, 2017/02/10 - 3:33오후
프로그램 실행 도중에 오버플로우 및 언더플로우가 발생한 경우 그에 따른 처리는 컴파일러가 만들어 낸 코드를 실행하는 것인가요(컴파일러에 의존해서 처리하는 것인가요)? 시스템(하드웨어+운여체제)에 의존해서 처리하는 것인가요?
#include <stdio.h> int main(void) { int n1=2147483647; n1+=100; // 오버플로우 발생! 컴파일러에 의존한 처리? 시스템에 의존한 처리? printf("n1: %d\n", n1); return 0; }
Forums:
관련된 C 언어 스펙은 잘 몰라서 경험적이고
관련된 C 언어 스펙은 잘 몰라서 경험적이고 추측성으로 말하자면,
C 컴파일러는 오버플로우 났는지 신경도 안써줍니다.
ss세그먼트에 범위가 지정되어 있어서 그 범위를
ss세그먼트에 범위가 지정되어 있어서 그 범위를 벗어나면 cpu측에서 os에 인터럽트를 날려버립니다
그 인터럽트를 받는거죠 받으면 os가 처리하는겁니다
댓글 달기