【发布时间】:2020-10-20 07:03:49
【问题描述】:
Blockquote “ISO/IEC 9899:1990, Programming Languages - C (ISO C) 故意模糊了 short int、int、long int 和指针的定义,以避免人为地限制可能受益的硬件架构定义这些数据类型彼此独立。唯一的限制是 ints 必须不小于 shorts,longs 必须不小于 ints,并且 size_t 必须表示实现支持的最大无符号类型。例如,这是可能的,定义一个short为16位,一个int为32位,一个long为64位,指针为128位。基本数据类型之间的关系可以表示为: sizeof(char) http://www.unix.org/whitepapers/64bit.html
为什么我们需要将这些数据类型定义得如此模糊
是不是因为我们有不同的计算机架构,所以我们无法将 int 设置为 32 位的固定大小?
long 和 int64 有什么区别? 是不是long的大小由系统决定,int64保证64位?
感谢您的帮助
【问题讨论】:
-
"size_t 必须代表实现支持的最大无符号类型" --> 确定吗?
-
你在引用什么?请注明取自其他来源的文字。
-
这些类型的大小随时间而变化。
-
未来打样。当我们进行 1024 位计算时,编码大小的语言会做什么?
überlong?holy<expletive deleted>itsbig? -
int64_t直到 99 才出现。C 中没有定义int64。
标签: c