固定大小浮点类型
为了追求精确表示和高效存储,固定大小浮点类型的标准化已经一直是C和C社区讨论的话题。虽然 C99、boost/cstdint.hpp 和 C 0x 提供了像 int32_t 这样的固定大小整数类型,但问题是:是否存在类似的固定大小浮点类型?
当前标准
答案是响亮的“不”。目前,C 和 C 标准均不提供固定大小的浮点类型。这与整数类型相反,其中 int32_t 和类似类型的存在确保了跨不同平台的一致表示。
缺少 float32_t
缺乏像 float32_t 这样的类型特别值得注意,因为 float 不保证是 C 或 C 中的二进制浮点格式。根据编译器的不同,float 可能遵循 IEEE-754 32 位二进制格式。
编译器保证和注意事项
实际上,float 通常是在许多非嵌入式平台上作为 IEEE-754 单一类型实现。但是,重要的是要注意,某些编译器可能会以更广泛的格式计算表达式,从而可能会在数值运算中引入差异。
未来发展
正在努力解决这个问题。一个工作组正在探索为 IEEE-754 2008 年修订版添加 C 语言绑定。如果在 C 中采取这样的步骤,很可能 C 标准最终也会效仿,为未来标准化的固定大小浮点类型铺平道路。
以上是C 和 C 中是否有标准化的固定大小浮点类型?的详细内容。更多信息请关注PHP中文网其他相关文章!