在本文中,我们将看看在 C/C++ 中使用 INT_MAX 和 INT_MIN。
这些实际上是代表最大和最低整数值的有用的宏。
让我们看看它,使用一些例子。
使用 INT_MAX 和 INT_MIN
INT_MAX 是一个代表最大整数值的宏,同样,INT_MIN 也代表最小整数值。
这些宏在标题文件中定义为<limits.h>,因此您必须包括它。
1#include <limits.h>
2
3INT_MAX
4
5INT_MIN
请注意,任何整数变量必须位于 INT_MIN 和 INT_MAX 之间。
通常,整数存储为4个字节(32位)。
这意味着在几乎所有机器中,最大整数值将是2^(31) - 1 = +2147483647.
最小整数值将是 -(2^31) = -2147483648
让我们来检查一下,对于我们的机器。
1#include <stdio.h>
2#include <limits.h>
3
4int main() {
5 printf("Maximum Integer Value: %d\n", INT_MAX);
6 printf("Minimum Integer Value: %d\n", INT_MIN);
7 return 0;
8}
出发点( )
1Maximum Integer Value: 2147483647
2Minimum Integer Value: -2147483648
實際上,我們得到了我們預測的。
现在让我们举另一个例子,正确预测任何整数过流或过流。
1#include <stdio.h>
2#include <limits.h>
3
4int main() {
5 int value = 0;
6 while (value >= 0) {
7 // Check for overflow
8 if (value == INT_MAX) {
9 printf("value = %d. Possible overflow!\n", value);
10 }
11 value ++;
12 }
13 printf("Now, value = %d\n", value);
14 value = 0;
15 while (value <= 0) {
16 // Check for underflow
17 if (value == INT_MIN) {
18 printf("value = %d. Possible underflow!\n", value);
19 }
20 value --;
21 }
22 printf("Now, value = %d\n", value);
23 return 0;
24}
出发点( )
1value = 2147483647. Possible overflow!
2Now, value = -2147483648
3value = -2147483648. Possible underflow!
4Now, value = 2147483647
虽然这需要好几秒钟才能运行,但它确实能做到我们所期望的。
整数将过流到INT_MIN
,并将过流到INT_MAX
。
这有助于检测这些值中的跳跃。
我们为什么需要这些宏观?
通常,对于某些算法,有时需要将变量作为最低值或最高值进行初始化。
数据类型的位数可能因机器而异。
要使最大/最小值的使用一致,如果每个人都可以使用相同的宏,这将是方便的!
这就是为什么这种类型的宏观存在 -
- 以免您记住实际值
- 在所有机器中具有一致的编程模式
- 非常方便使用
希望这些原因可以说服您在构建自己的 C/C++ 库时使用此类宏。
结论
在本文中,我们了解了如何在 C/C++ 中使用 INT_MAX 和 INT_MIN 宏。
对于类似的内容,请参阅我们关于 C 编程的教程部分( / 社区 / 教程 / c 编程)。