hyl,co! 发表于 2023-1-30 22:12:16

KEIL编译问题


大家好,为什么编译一次就会出现这个报错,再编译多一次后,这个报错就没有了。希望各位大佬帮忙解答,我想要编译一次也可以五报错。


电子DIY小家 发表于 2023-1-30 22:43:43

入口参数 Xstart / 2 改成 (u8)(Xstart / 2)试试~   
括号里的u8看你这个函数定义的入口参数类型,下面的同理

hyl,co! 发表于 2023-1-30 23:23:55

电子DIY小家 发表于 2023-1-30 22:43
入口参数 Xstart / 2 改成 (u8)(Xstart / 2)试试~   
括号里的u8看你这个函数定义的入口参数类型,下面 ...

我测试了你的方法,确实可以了。可以说明一下原因吗?为什么这样报错就没有了

LAOXU 发表于 2023-1-31 03:36:50

数据类型没有匹配

估计 楼主的 Xstart 是宏定义 常量, 默认 u16类型

yycl 发表于 2023-2-1 14:24:31

看函数参数声明是u8,按道理应该无问题,原函数的声明也是,如果不强调u8,编译软件认为,经过计算可产生小数,语法要求很严格。

梁工 发表于 2023-2-1 16:32:57

是C251的编译器吧?C251编译器计算过程默认是16位的,所以要将计算结果强转成8位,如上面“沙发”所言。
(u8)(计算表达式)

hyl,co! 发表于 2023-2-3 22:47:14

好的,谢谢各位大佬

机灵小老鼠 发表于 2024-7-7 21:25:52

上面这样写就是进行数据类型的显式强制转换,保证函数调用时参数类型的一致性
页: [1]
查看完整版本: KEIL编译问题