类型转换的问题。。。

2019-07-21 04:23发布

我将这行代码
temp=(float)adcx*(3.3/4096)
改为
temp=(float)adcx*(0.0008)

为什会报这个警告呢
main.c(274): warning:  #1035-D: single-precision operand implicitly converted to double-precision
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
正点原子
1楼-- · 2019-07-21 05:58
 精彩回答 2  元偷偷看……
ofourme
2楼-- · 2019-07-21 11:14
单精度的(float)adcx乘以双精度的浮点数,结果隐式转换为双精度数。
Nemo_gg
3楼-- · 2019-07-21 16:34
回复【2楼】正点原子:
---------------------------------
问题解决了,哈哈。谢谢。
三叶草
4楼-- · 2019-07-21 17:40
0.0008改为0.0008f试试看,arm的编译器通常在计算浮点数乘除法时转成双精度的计算,其实可以强制转化为float去计算,这样还可以减少代码空间,增加程序执行效率
Nemo_gg
5楼-- · 2019-07-21 20:56
回复【5楼】三叶草:
---------------------------------
这样也可以,在后面加F就是强制单精度计算吗?
三叶草
6楼-- · 2019-07-22 00:31
 精彩回答 2  元偷偷看……

一周热门 更多>