int형 변수가 범위를 벗어나는 값을 가질 경우 발생하는 오류
오픈 플랫폼 BSP/C언어 / 2010. 5. 13. 17:48
정수형 최대표현 범위를 벗어나는 값을 가질 경우 발생하는 오류
DOS나 Windows 3.1 같은 16비트 운영체제 환경에서는 2byte에 저장이 되고,
Windows NT, UNIX 같은 32비트 운영체제 환경에서는 4byte로 저장이 된다.
이때 2byte에 저장되는 정수의 범위는 -32,768 ~ 32,767까지이며,
4byte에 저장되는 정수의 범위는 -2,147,483,648 ~ 2147483647까지 이다.
위의 소스화면과 실행화면은 32비트 운영체제 환경에서 정수의 범위가 벗어나는 값을 가질 경우
어떤 오류가 발생하는지 보여주는 프로그램이다.
예제소스 |
#include <stdio.h> int main() { int num; num = 2147483647; //정수의 최대값 printf("최대값보다 2가 큰 값은 %d.\n", num+2); printf("최대값보다 2가 작은 값은 %d.\n", num-2); return 0; } |
실행화면 |
DOS나 Windows 3.1 같은 16비트 운영체제 환경에서는 2byte에 저장이 되고,
Windows NT, UNIX 같은 32비트 운영체제 환경에서는 4byte로 저장이 된다.
이때 2byte에 저장되는 정수의 범위는 -32,768 ~ 32,767까지이며,
4byte에 저장되는 정수의 범위는 -2,147,483,648 ~ 2147483647까지 이다.
위의 소스화면과 실행화면은 32비트 운영체제 환경에서 정수의 범위가 벗어나는 값을 가질 경우
어떤 오류가 발생하는지 보여주는 프로그램이다.
'오픈 플랫폼 BSP > C언어' 카테고리의 다른 글
리눅스에서 GDB를 이용한 디버깅 하기 (0) | 2010.05.31 |
---|---|
20100526 - 과제 (0) | 2010.05.27 |
자료형과 연산자 (0) | 2010.05.17 |
C언어 컴파일 과정 (VC++ 기준) (0) | 2010.05.12 |
C언어의 기초 컴파일 실습 (0) | 2010.05.11 |