【发布时间】:2014-04-26 05:25:03
【问题描述】:
我知道在C 中sizeof 运算符的返回类型是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
请帮助我理解为什么我的误解背后存在差异或原因。
【问题讨论】: