산술 오버플로(Overflow)에 대한 소개 영상입니다.

 

강의

https://youtu.be/S72ieUOkJRY

코드: integer_overflow.c

int 형식이 담을 수 있는 범위를 벗어나는 데이터로 초기화되면 오버플로에 의해서 잘못된 데이터가 담깁니다. 그래서 프로그래밍할 때에는 데이터 타입의 범위를 확인하면서 코드를 작성해야 합니다.

// integer_overflow.c
#include <stdio.h>

// limits.h 헤더 파일의 INT_MAX, INT_MIN으로 정수 형식의 최댓값, 최솟값 알 수 있음
// #include <limits.h>

int main(void)
{
    // int 형식의 범위: -2147483648 ~ +2147483647
    // 담을 수 있는 범위를 벗어남: 오버플로(넘침) 발생
    int num = (2147483647 + 2147483647); // INT_MAX + INT_MAX
    printf("%d\n", num); // 잘못된 데이터 값 출력

    return 0; 
}

 

실행

-2

실행 결과는 잘못된 데이터입니다.

 

Comments

Be the first to post a comment

Post a comment