繁体   English   中英

size_t 的最大大小

[英]Maximum size of size_t

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

limit of size_t
  SIZE_MAX             65535

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

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

请帮助我理解为什么我的误解背后存在差异或原因。

标准规定SIZE_MAX必须至少为65535。

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

引用你引用的参考文献(强调):

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM