【发布时间】:2011-03-27 12:34:17
【问题描述】:
我注意到在 Windows 和 Linux x86 上,float 是 4 字节类型,double 是 8,但 long double 在 x86 和 x86_64 上分别是 12 和 16。 C99 应该以特定的整数大小打破这些障碍。
最初的技术限制似乎是由于 x86 处理器无法处理超过 80 位的浮点运算(加上 2 个字节以四舍五入),但为什么与 int 类型相比标准不一致?为什么他们不去至少 80 位标准化?
【问题讨论】:
-
这个问题stackoverflow.com/questions/271076/… 是关于 C++ 但它适用于 C。它表明即使在 C 中整数类型也没有标准化:标准故意给编译器回旋余地,以便实现可以一样快尽可能。
标签: c floating-point sizeof c99 standardization