最近在写SPFA时候发现这个极值的问题,在C++中其实已经有了解决。

数据类型的极值

在limits.h中,我们可以找到如下定义(已简化):

#define CHAR_BIT    8
#define MB_LEN_MAX    2
#define SCHAR_MIN    (-128)
#define SCHAR_MAX    127
#define UCHAR_MAX    255
#define CHAR_MIN    SCHAR_MIN
#define CHAR_MAX    SCHAR_MAX
#define INT_MAX        2147483647
#define INT_MIN        (-INT_MAX-1)
#define UINT_MAX    0xFFFFFFFF
#define SHRT_MAX    32767
#define SHRT_MIN    (-SHRT_MAX-1)
#define USHRT_MAX    0xFFFF
#define LONG_MAX    2147483647L
#define LONG_MIN    (-LONG_MAX-1)
#define ULONG_MAX    0xFFFFFFFFUL
#define SSIZE_MAX    LONG_MAX
#define LONG_LONG_MAX    9223372036854775807LL
#define LONG_LONG_MIN    (-LONG_LONG_MAX-1)
#define ULONG_LONG_MAX    (2ULL * LONG_LONG_MAX + 1)#define _I64_MIN    LONG_LONG_MIN
#define _I64_MAX    LONG_LONG_MAX
#define _UI64_MAX    ULONG_LONG_MAX

在使用时,只需要包含<limits.h>或者<climits>。

文件名长度的极值MAX_PATH

在Windows下,文件名的长度是有限制的。
注意,这里的文件名长度是指包含目录到文件名的全路径字符长度
就譬如"C:Program FilesMicrosoft Office"这样的一个完整路径长度不能超过260。
这一点在Microsoft官网可以找到解释
https://docs.microsoft.com/zh-cn/windows/win32/fileio/naming-a-file#maximum-path-length-limitation
a.png