我正在更改我的代码以符合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接受。事情是我不能硬编码那里的价值。我怎样才能摆脱这个警告?
答案 0 :(得分:4)
这应解决您的MISRA问题:
memcpy(&Final_buff[index], Main_cal, (size_t) buffer_size);
规则10.1在几种情况下不允许隐式转换,包括"表达式不是常量并且是函数参数",这是您遇到的情况。