-
C언어에서는 정수형 변수가 나타낼 수 있는 정수의 범위가 제한되어 있으므로 조심해야한다.
즉 정수형 변수를 이용해 산술 연산을 하는 경우, 산술 연산의 결과가 정수형이 나타낼 수 있는 범위를 초과할 수 있다.
#include <stdio.h> int main(void) { short s_money = 32767; // 최대값으로 초기화한다. s_money = s_money + 1; printf("s_money = %d\n", s_money); return 0; }위 코드에서 short형 변수에 최대값인 32767을 할당한 후에 1을 증가시켜보았다.
이 경우에는 32767에서 갑자기 -32768이 되는 것을 볼 수 있었다!
이런 경우를 오버플로우(overflow)라고 하며 변수가 나타낼 수 있는 범위를 넘는 숫자를 저장하려고 할 때 발생한다.
하지만 정수형에서 오버플로우가 발생하더라도 컴파일러는 코드를 중지시키거나, 아무런 경고를 하지 않는다.
따라서 정수형을 사용할 때는 오버플로우가 일어나지 않도록 주의해야한다!!
'C' 카테고리의 다른 글
정수를 입력받은 후 문자를 입력받을 때 (0) 2023.02.06 아스키 코드로 출력하는 방법 (0) 2023.02.06 기호 상수(#define & const) (0) 2023.02.04 형식 지정자의 종류 (0) 2023.02.04 unsigned 수식자 (0) 2023.02.04