watercici 发表于 2018-5-15 11:59:31

参数类型不兼容的问题

volatile u8 receive_buf ={0};        
void clear_buffer(u8 *buf)

然后
clear_buffer(receive_buf);//这句总是有警告:
..\User\src\protocol.c(149): warning:#167-D: argument of type "volatile u8 *" is incompatible with parameter of type "u8 *"
怎么改一下呢?

andeyqi 发表于 2018-5-15 13:07:03

参数类型不匹配,一个是volatile u8*,一个是u8*,可以尝试以下方法。
①修改函数clear_buff形参为volatile u8*,或者修改recveive_buff为u8类型的数组
②或者修改编选项,屏蔽掉此警告信息

toofree 发表于 2018-5-15 12:07:55

本帖最后由 toofree 于 2018-5-15 12:10 编辑

C语言得好好回炉一下,
有个名词叫,强制类型转换。

clear_buffer((u8 *)receive_buf);

Angel_YY 发表于 2018-5-15 13:07:15

最好的方式就是强制类型转换,方法如楼上所示。或者在编译器中屏蔽掉这一类型的警告,通常不建议,方法添加 --diag_suppress=167 ,这个数字就是警告代码




wenyangzeng 发表于 2018-5-15 13:29:06

void clear_buffer(u8 *buf)
是一个函数说明,少了分号

watercici 发表于 2018-5-25 11:57:48

结贴:采用的是强制类型转换
页: [1]
查看完整版本: 参数类型不兼容的问题