我想编写尽可能可移植的C99或更高版本的代码。所以我想确保它是便携式的。
答案 0 :(得分:2)
<limits.h>
在C标准中指定。 C11/C17 5.2.4.2.1告诉您包含<limits.h>
时哪些宏可用。该表还列出了实现所允许的最小幅度值。列表中每个宏的实际值是实现定义的。
值得注意的是,即使目标是独立的环境(即不具有标准库的服务),该标头也应存在于任何符合标准的实现中。
宏位于C11 / C17 CHAR_BIT
,SCHAR_MIN
,SCHAR_MAX
,UCHAR_MAX
,CHAR_MIN
,CHAR_MAX
,{{1} },MB_LEN_MAX
,SHRT_MIN
,SHRT_MAX
,USHRT_MAX
,INT_MIN
,INT_MAX
,UINT_MAX
,
LONG_MIN
,LONG_MAX
,ULONG_MAX
,LLONG_MIN
和LLONG_MAX
。
由于C89既没有ULLONG_MAX
也没有long long int
,所以在符合C89的C实现中不应存在最后3个。