Sun*_*lly 36 c gcc sizeof c99 size-t
我知道C返回类型的sizeof运算符是size_t在中定义的无符号整数类型<stdint.h>.这意味着它的最大尺寸应该65535在规定作为C99标准7.18.3:
limit of size_t
SIZE_MAX 65535
Run Code Online (Sandbox Code Playgroud)
但是在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
Run Code Online (Sandbox Code Playgroud)
请帮助我理解为什么在我的误解背后存在差异或原因.
Kei*_*son 47
该标准规定SIZE_MAX必须至少为 65535.
它没有指定上限,gcc的实现完全有效.
引用你引用的参考文献(重点补充):
其实现定义值的大小(绝对值)应等于或大于下面给出的相应值,并使用相同的符号.
| 归档时间: |
|
| 查看次数: |
50318 次 |
| 最近记录: |