floating-point - 如何从生成的代码中自动消除双精度数学?
问题描述
在我们针对 ARM Cortex M* 内核的嵌入式项目中,我们使用基于 ARM clang 的工具链 (v6)。我们将float
type 用于浮点数学。当我们试图最小化占用空间时,我们发现一些空间被不必要的double
<->float
转换占用了。
其中一些转换的来源是使用不包括说明符的文字f
(例如,使用12.34
而不是12.34f
)。为了消除这种情况,我正在寻找一个float
默认使用类型的编译器选项。查看编译器文档和一般的 clang 帮助,我找不到任何东西。
是否有任何选项(命令选项、编译指示、属性等)可以实现该目标?
解决方案
-fsingle-precision-constant是您正在寻找的东西,尽管我个人认为您应该避免使用它,而是使用显式强制转换。
推荐阅读
- android - Android 8 或 9 上的后台地理围栏不起作用
- ios - 如何将 Google Map 动画到当前标记位置并在 Swift 中绘制线条
- python - 保存已翻译的 django 模型翻译的 slug 不起作用
- rust - 是否可以在 WebAssembly 中使用 Rust 进行动态链接?
- powershell - 使用 Literalpath 或有意复制项目的错误?
- laravel - Laravel 4.2 Request::get() 为空
- ionic-framework - 离子版本控制在浏览器平台中不起作用
- css - 当行高和字体大小增加时,如何修复 Firefox 中的“更大”轮廓?
- angularjs - Angular,Chrome - 所有请求都停止了大约 450 毫秒
- python - 如何让 Python 应用程序与终端通信