C:<limits.h>是否跨平台?

时间:2018-12-31 08:52:28

标签: c cross-platform c99 portability

我想编写尽可能可移植的C99或更高版本的代码。所以我想确保它是便携式的。

1 个答案:

答案 0 :(得分:2)

<limits.h>在C标准中指定。 C11/C17 5.2.4.2.1告诉您包含<limits.h>时哪些宏可用。该表还列出了实现所允许的最小幅度值。列表中每个宏的实际值是实现定义的。

值得注意的是,即使目标是独立的环境(即不具有标准库的服务),该标头也应存在于任何符合标准的实现中

宏位于C11 / C17 CHAR_BITSCHAR_MINSCHAR_MAXUCHAR_MAXCHAR_MINCHAR_MAX,{{1} },MB_LEN_MAXSHRT_MINSHRT_MAXUSHRT_MAXINT_MININT_MAXUINT_MAXLONG_MINLONG_MAXULONG_MAXLLONG_MINLLONG_MAX

由于C89既没有ULLONG_MAX也没有long long int,所以在符合C89的C实现中不应存在最后3个。