C/C++에서 INT_MAX 및 INT_MIN 사용
이 기사에서는 C/C++에서 INT_MAX 및 INT_MIN을 사용하는 방법을 살펴보겠습니다.
이들은 실제로 최대 및 최소 정수 값을 나타내는 유용한 매크로입니다.
몇 가지 예를 들어 살펴보겠습니다.
INT_MAX 및 INT_MIN 사용
INT_MAX는 최대 정수 값을 나타내는 매크로입니다. 마찬가지로 INT_MIN은 최소 정수 값을 나타냅니다.
이러한 매크로는
헤더 파일에 정의되어 있으므로 포함해야 합니다.
#include <limits.h>
INT_MAX
INT_MIN
모든 정수 변수는 INT_MIN과 INT_MAX 사이에 있어야 합니다.
일반적으로 정수는 4바이트(32비트)로 저장됩니다.
즉, 거의 모든 기계에서 최대 정수 값은 2^(31) - 1=+2147483647입니다.
최소 정수 값은 -(2^31)=-2147483648입니다.
우리 기계에 대해 이것을 확인합시다.
#include <stdio.h>
#include <limits.h>
int main() {
printf("Maximum Integer Value: %d\n", INT_MAX);
printf("Minimum Integer Value: %d\n", INT_MIN);
return 0;
}
산출
Maximum Integer Value: 2147483647
Minimum Integer Value: -2147483648
실제로 우리는 우리가 예측하는 것을 얻습니다.
정수 오버플로 또는 언더플로를 올바르게 예측하기 위해 다른 예를 들어 보겠습니다.
#include <stdio.h>
#include <limits.h>
int main() {
int value = 0;
while (value >= 0) {
// Check for overflow
if (value == INT_MAX) {
printf("value = %d. Possible overflow!\n", value);
}
value ++;
}
printf("Now, value = %d\n", value);
value = 0;
while (value <= 0) {
// Check for underflow
if (value == INT_MIN) {
printf("value = %d. Possible underflow!\n", value);
}
value --;
}
printf("Now, value = %d\n", value);
return 0;
}
산출
value = 2147483647. Possible overflow!
Now, value = -2147483648
value = -2147483648. Possible underflow!
Now, value = 2147483647
실행하는 데 몇 초가 걸리지만 실제로 예상한 대로 작동합니다.
정수는 INT_MIN
으로 오버플로되고 INT_MAX
로 언더플로됩니다.
이는 값의 이러한 점프를 감지하는 데 유용합니다.
이 매크로가 필요한 이유는 무엇입니까?
종종 특정 알고리즘의 경우 변수를 최저/최고 값으로 초기화해야 하는 경우가 있습니다.
데이터 유형의 비트 수는 기계에 따라 다를 수 있습니다.
최대값/최소값을 일관되게 사용하려면 모든 사람이 동일한 매크로를 사용할 수 있으면 편리합니다!
이것이 바로 이러한 종류의 매크로가 존재하는 이유입니다.
- 실제 값을 기억하지 않도록
- 모든 시스템에서 일관된 프로그래밍 패턴을 유지
- 사용하기 매우 편리함
바라건대 이러한 이유 때문에 C/C++ 라이브러리를 빌드할 때마다 이러한 종류의 매크로를 사용하도록 확신할 수 있습니다.
결론
이 기사에서는 C/C++에서 INT_MAX 및 INT_MIN 매크로를 사용하는 방법에 대해 알아보았습니다.
유사한 내용을 보려면 C 프로그래밍에 대한 자습서 섹션을 참조하십시오.
참조
- climits의 cplusplus.com 페이지