반응형

[C++] 오버플로우(Overflow) 체크방법

반응형

int check_overflow(int num1, int num2) 
{ 
    // 여기가 핵심. num1 + num2 > INT_MAX를 변형한 것
    // 위 식을 그대로 쓸 경우 num1 + num2 자체에서 오버플로우가 일어나 계산이 안 됨
    if (num1 > INT_MAX - num2) 
        return -1; 
    else
        return num1 + num2; 
} 
  
int main() 
{ 
    int num1 = 2147483627; 
    int num2 = 20; 

    int result = check_overflow(num1, num2); 

    if (result == -1) 
        std::cout << "Integer overflow occurred"; 
    else
        std::cout << result; 
} 


반응형

이 글을 공유하기

댓글

Designed by JB FACTORY