【发布时间】:2009-06-11 17:17:54
【问题描述】:
假设您正在编写一个执行大量浮点运算的 C++ 应用程序。假设这个应用程序需要在合理范围的硬件和操作系统平台上进行移植(比如 32 位和 64 位硬件,Windows 和 Linux 的 32 位和 64 位版本......)。
您如何确保您的浮点运算在所有平台上都是相同的?例如,如何确保 32 位浮点值在所有平台上都是 32 位?
对于整数,我们有 stdint.h,但似乎不存在等效的浮点数。
[编辑]
我得到了非常有趣的答案,但我想为这个问题添加一些精确度。
对于整数,我可以这样写:
#include <stdint>
[...]
int32_t myInt;
并确保无论我使用的是什么(C99 兼容)平台,myInt 都是一个 32 位整数。
如果我写:
double myDouble;
float myFloat;
我确定这将在所有平台上分别编译为 64 位和 32 位浮点数吗?
【问题讨论】:
标签: c++ floating-point