【发布时间】:2015-10-30 05:12:03
【问题描述】:
我正在更改我的代码以符合 MISRA 标准。我遇到了警告
必需的规则 10.1,禁止的隐式转换:函数的非常量参数。
memcpy(&Final_buff[index], Main_cal, buffer_size);
// where buffer_size is uint8, uint8 *Final_buff, and const uint8 *buffer
然后我在上面换了个小测试:
memcpy(&Final_buff[index], Main_cal, 12u);
被 MISRA 接受。问题是我无法对那里的值进行硬编码。我怎样才能摆脱这个警告?
【问题讨论】:
-
显示Final_buff、Main_cal和buffer_size的声明。
-
@work.bin,我已经编辑过了。它是 uint8 *Final_buff
-
也显示 Main_cal 的声明并提及您已经尝试过的类型转换。
-
@harper,但 Current Misra 正在对“buffer_size”发出警告
-
为什么你使用
uint8_t作为缓冲区大小?