【发布时间】:2011-03-28 03:25:45
【问题描述】:
我知道各种数据类型的大小可能会根据我所在的系统而变化。
我使用 XP 32 位,在 C++ 中使用 sizeof() 运算符,看起来 long double 是 12 个字节,double 是 8 个字节。
但是,大多数主要来源都指出 long double 是 8 个字节,因此范围与 double 相同。
我怎么有 12 个字节?如果long double确实是12个字节,这不也扩展了值的范围吗?或者长签名仅在值超出双精度范围时使用(编译器数字),因此超出 8 个字节?
【问题讨论】:
-
这是 ISO C 中最糟糕的功能。我强烈建议您不要使用它。它只会导致问题,因为规范太松散了。
标签: c++ floating-point long-double