gpt4 book ai didi

c - C 中的 float_fast(类似于 stdint.h 中的 int_fast)

转载 作者:太空宇宙 更新时间:2023-11-04 05:24:24 24 4
gpt4 key购买 nike

我正在制作一个 pong 程序,只是想知道 C 中是否有快速 float 。其他数据类型(如 double)的奖励积分。

附言我试图查找它,但无济于事。

最佳答案

C 标准语言和库没有定义这样的类型。

<stdint.h>定义 [u]int_fastN_t , 与 N等于 8、16、32 和 64。每个这样的类型都是给定宽度的“最快”整数类型。这些不是比内置类型更快的特殊类型。它们只是现有类型的别名,是为获得最佳性能而选择的。例如,16 位整数在一个系统上可能比 32 位整数快,在另一个系统上可能比 32 位整数慢。

C 中正好有 3 种标准浮点类型,float , double , 和 long double .该语言无法确定其中哪一个最快。

在实践中,floatdouble很可能是最快的浮点类型。 float是最小的,因此您可能会认为它是最快的,但实际上它取决于当前的硬件。在某些系统上 double实际上可能比 float 快. (我从来没有费心自己测量过。)

double在某种意义上是“默认”浮点类型。它是无后缀浮点常量的类型,如 42.0 ,以及 <math.h> 中的函数表现出对类型的偏见 double .例如,sqrt()double 上运行, 和 sqrtl()sqrtl()float 上操作和 long double分别。

我的建议:使用类型 double .如果事实证明您的代码不够快,请考虑尝试 float相反——并测量您系统上的实际性能。请记住,您的代码不必尽可能快;它必须足够快。在相当现代的计算机上,浮点速度不太可能成为乒乓程序的性能瓶颈。

您甚至可以仅使用整数运算来实现 pong,这可能比浮点运算更快——但差异不太可能是关键的。

关于c - C 中的 float_fast(类似于 stdint.h 中的 int_fast),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38034732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com