求助下大佬们
为什么c251环境下形参里不能计算,搞得很麻烦还要再定义变量装计算值警告:值被截断
这是因为数据类型不匹配导致的,pow函数要求输入参数为浮点数,输入整数就会导致这个警告,消除这个警告需要使用强制类型转换 DebugLab 发表于 2024-9-9 00:28
警告:值被截断
这是因为数据类型不匹配导致的,pow函数要求输入参数为浮点数,输入整数就会导致这个警告, ...
不应该啊我写的参数是uchar啊,是所有的参数不止这一个只要是在里面加减乘除就会报错,写8952单片机的时候的时候也没有这个问题 阿杰爱学单片机 发表于 2024-9-9 07:52
不应该啊我写的参数是uchar啊,是所有的参数不止这一个只要是在里面加减乘除就会报错,写8952单片机的时候 ...
float DebugLab 发表于 2024-9-9 09:05
float
我再写个你看下 DebugLab 发表于 2024-9-9 09:05
float
好奇怪啊又没问题了,我研究研究 阿杰爱学单片机 发表于 2024-9-10 14:50
好奇怪啊又没问题了,我研究研究
看看pow在math.h里怎么定义的,数据类型匹配不匹配 还是聊几句吧...
感觉楼主遇到的问题也是个老话题了. 类似话题...
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=105355楼
这是一个警告信息,不是致命错误, 或许可以忽略, 就是看着有点不舒服.
pow()函数不是不能计算,而是参数有可能超出原型定义的数据类型范围,将要被截取...
具体地说, 警告你第二个参数 (Length-i-1)要被截断了.
前面几位都给出了意见, 强制转换一下类型也可以的, 比如写成 (float)(Length-i-1)试试看...
你又说"...是所有的参数不止这一个...."...
是啊, 这种警告不是只针对pow()函数的, 所有只要是带有运算的参数, 都可能会有这样的警告信息.
你又说"好奇怪啊又没问题了"...
不要奇怪, 修改后首次编译, 会提出警告, 你不做修改, 再紧接着编译一下, 这警告就没有了...
意思是:已提醒过你了, 仍然坚持不改, 那就算了, 这本来也不是一个严重的问题.....
仅供参考....
浦江一水 发表于 2024-9-10 17:27
还是聊几句吧...
感觉楼主遇到的问题也是个老话题了. 类似话题...
https://www.stcaimcu.com/forum.php?mod ...
就是看着太不舒服了,以前51也不会报这个警告