[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;
}
'기타 > 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 |