C语言 size_t的最大大小



我知道在Csizeof运算符的返回类型是size_t是在<stdint.h>中定义的无符号整数类型。这意味着它的最大尺寸应该是65535,如C99标准7.18.3:

所述
limit of size_t
  SIZE_MAX             65535

然而,在gcc-4.8.2头文件中,stdint.h定义了比65535大得多的大小,这与C99标准中的规定相矛盾,如下所示,

/* Limit of `size_t' type.  */
# if __WORDSIZE == 64
#  define SIZE_MAX              (18446744073709551615UL)
# else
#  define SIZE_MAX              (4294967295U)
# endif

请帮助我理解为什么我的误解有差异或原因。

标准规定SIZE_MAX必须至少 65535。

它没有指定上限,gcc的实现是完全有效的。

引用你引用的参考文献:

其实现定义的值等于或大于的大小(绝对值),与下面给出的相应值具有相同的符号。

相关内容

  • 没有找到相关文章

最新更新