你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

参数类型不兼容的问题

[复制链接]
watercici 提问时间:2018-5-15 11:59 /
volatile u8 receive_buf[BUFFER_SIZE] ={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 *"
怎么改一下呢?

收藏 评论5 发布时间:2018-5-15 11:59

举报

5个回答
andeyqi 回答时间:2018-5-15 13:07:03
参数类型不匹配,一个是volatile u8*,一个是u8*,可以尝试以下方法。
①修改函数clear_buff形参为volatile u8*,或者修改recveive_buff为u8类型的数组
②或者修改编选项,屏蔽掉此警告信息

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

toofree 回答时间:2018-5-15 12:07:55
本帖最后由 toofree 于 2018-5-15 12:10 编辑

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

clear_buffer((u8 *)receive_buf);

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

Angel_YY 回答时间:2018-5-15 13:07:15
最好的方式就是强制类型转换,方法如楼上所示。或者在编译器中屏蔽掉这一类型的警告,通常不建议,方法添加 --diag_suppress=167 ,这个数字就是警告代码
0002.png



评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

wenyangzeng 回答时间:2018-5-15 13:29:06
void clear_buffer(u8 *buf)
是一个函数说明,少了分号

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

watercici 回答时间:2018-5-25 11:57:48
结贴:采用的是强制类型转换

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版