嵌入式C语言报错求解。

newfish_ 2012-10-12 12:04:54
uint8_t buf[64];
uint16_t total; /* 记录当前缓冲在FILE_DATA_BUF中的数据长度 */
uint32_t NewSize; /* 临时变量 */
uint8_t FileDataBuf[0x4000]; /* 文件缓冲区,太小则速度慢 */

total += sprintf( FileDataBuf + total, " ********************************* " ); /* 将新数据添加到缓冲区的尾部,累计缓冲区内的数据长度 */

报错提示如下,求解啊。。。

..\..\Source\src\main.c(227): warning: #167-D: argument of type "uint8_t *" is incompatible with parameter of type "char *restrict"
...全文
586 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
贝隆 2012-10-12
  • 打赏
  • 举报
回复
不懂,帮顶
youzi722 2012-10-12
  • 打赏
  • 举报
回复
强制转换一下就可以了,如下

sprintf( (char *)(FileDataBuf + total),

或者直接把FileDataBuf定义为
char FileDataBuf[0x4000];

kjh1166 2012-10-12
  • 打赏
  • 举报
回复
没见过,好奇
dsoyy 2012-10-12
  • 打赏
  • 举报
回复
sprintf第一个参数是char类型,你用的是uint8_t,类型不匹配。需要核实uint8_t类型的定义。
你这个警告是因为在执行中会进行强制类型转换。

27,370

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧