gpt4 book ai didi

c - 使 C 浮点文字 float (而不是 double )

转载 作者:太空狗 更新时间:2023-10-29 16:16:08 26 4
gpt4 key购买 nike

众所周知,在 C 中,浮点文字(例如 1.23)的类型为 double。因此,任何涉及它们的计算都会被提升为 double。

我正在开发一个嵌入式实时系统,该系统具有一个仅支持单精度 (float) 数字的浮点单元。我所有的变量都是float,这个精度就够了。我根本不需要(也负担不起)double。但每次都是这样

if (x < 2.5) ...

写着,灾难发生了:减速可能高达两个数量级。直接回答当然是写

if (x < 2.5f) ...

但这很容易被遗漏(并且很难检测到,直到为时已晚),尤其是当一个“配置”值被#define放在一个单独的文件中时新)开发者。

那么,有没有办法强制编译器将所有(浮点)文字都视为 float ,就像带有后缀 f 一样?即使它违反规范,我也不在乎。或任何其他解决方案?顺便说一句,编译器是 gcc。

最佳答案

-fsingle-precision-constant可以使用标志。它会导致以单精度加载​​浮点常量,即使这不是精确的。

注意 - 这还将在 double 变量的运算中使用单精度常量。

关于c - 使 C 浮点文字 float (而不是 double ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32266864/

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