📌  相关文章
📜  <climits>(limits.h)在C C++中(1)

📅  最后修改于: 2023-12-03 15:13:11.068000             🧑  作者: Mango

介绍 (limits.h) 在 C/C++ 中

在 C 和 C++ 中, 头文件定义了实现限制的常量。这些常量将标识实现的基础特征,如字节数的范围,类型的最大和最小值,等等。这个头文件中包含了大量的常量,我们将会一一了解它们。

常量列表

下面是一些在 C 和 C++ 中可以用 获取到的常量的列表:

Minimum and maximum values of integer types

|Constant | Minimum Value | Maximum Value | |---------------------|----------------------------------|------------------------------| |CHAR_BIT | 8 | | |SCHAR_MIN | -128 | 127 | |SCHAR_MAX | | 127 | |UCHAR_MAX | | 255 | |CHAR_MIN | Same as SCHAR_MIN | Same as SCHAR_MAX | |CHAR_MAX | Same as SCHAR_MAX | Same as UCHAR_MAX | |SHRT_MIN | -32768 | 32767 | |SHRT_MAX | | 32767 | |USHRT_MAX | | 65535 | |INT_MIN | -2147483648 | 2147483647 | |INT_MAX | | 2147483647 | |UINT_MAX | | 4294967295 | |LONG_MIN | -9223372036854775808L | 9223372036854775807L | |LONG_MAX | | 9223372036854775807L | |ULONG_MAX | | 18446744073709551615UL | |LLONG_MIN | -9223372036854775808LL | 9223372036854775807LL | |LLONG_MAX | | 9223372036854775807LL | |ULLONG_MAX | | 18446744073709551615ULL |

这些常量表示不同类型的数据所能存储的最小值和最大值。例如,INT_MIN 和 INT_MAX 常量分别表示可存储在int类型中的最小负整数和最大正整数。需要注意的是,有些常量的最小值和最大值需要用长整型,有些需要用长长整型。

Sizes of types

|Constant | Size (in bytes) | |---------------------|------------------------| |MB_LEN_MAX | 1 | |CHAR_BIT | 1 | |sizeof(char) | 1 | |sizeof(signed char) | 1 | |sizeof(unsigned char)| 1 | |sizeof(short) | 2 | |sizeof(unsigned short)| 2 | |sizeof(int) | 4 | |sizeof(unsigned int) | 4 | |sizeof(long) | 8 | |sizeof(unsigned long)| 8 | |sizeof(long long) | 8 | |sizeof(unsigned long long)| 8 |

这些常量表示不同类型的数据所占用的字节数。sizeof操作符返回的值应该与这些常量的值相同。这些常量的值并不是所有平台的C/C++实现都相同的,所以编写可移植代码时应特别小心。

Other constants

|Constant | Value | |---------------------|-------------------------------------| |NULL | Implementation-defined null pointer | |EOF | Implementation-defined end-of-file |

这些常量不是跟数据类型相关的,但也可以在程序中使用。其中,NULL 是空指针的宏定义。EOF 是返回文件函数的宏定义,在输入没有更多内容时用于判断文件是否以结束。

总结

头文件中,定义了许多 C 和 C++ 能够使用的常量,用于标识实现的基础特征,如数据类型的取值范围和所占用空间大小等。熟悉这些常量,有助于程序员编写更加可移植的程序。