首页 > 解决方案 > 如何从生成的代码中自动消除双精度数学?

问题描述

在我们针对 ARM Cortex M* 内核的嵌入式项目中,我们使用基于 ARM clang 的工具链 (v6)。我们将floattype 用于浮点数学。当我们试图最小化占用空间时,我们发现一些空间被不必要的double<->float转换占用了。

其中一些转换的来源是使用不包括说明符的文字f(例如,使用12.34而不是12.34f)。为了消除这种情况,我正在寻找一个float默认使用类型的编译器选项。查看编译器文档和一般的 clang 帮助,我找不到任何东西。

是否有任何选项(命令选项、编译指示、属性等)可以实现该目标?

标签: floating-pointarmembeddedclangprecision

解决方案


-fsingle-precision-constant是您正在寻找的东西,尽管我个人认为您应该避免使用它,而是使用显式强制转换。


推荐阅读