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

参数类型不兼容的问题

[复制链接]
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扩展软件包
关注我们
st-img 微信公众号
st-img 手机版