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

2021. 3. 30. 13:04 기타/C++

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; 
}


출처: https://engkimbs.tistory.com/631?category=688856 [새로비]

'기타 > C++' 카테고리의 다른 글

c++ 11  (0) 2021.04.11
[C++] 문자열(string)에서 double형으로  (0) 2021.03.30
[C++] 문자열 뒤집기  (0) 2021.03.30
[C++] 문자열 앞뒤 공백 제거 방법 ( Boost 라이브러리 안 씀 )  (0) 2021.03.30
[C++] namespace, FQN(fully Qualified Name)  (0) 2021.03.30
[C++] constexpr  (0) 2021.03.30
[C++] Header File (헤더 파일)  (0) 2021.03.30
[C++] 스마트포인터  (0) 2021.03.30