我正在更改我的代码以满足 MISRA 标准。我遇到了警告
Required Rule 10.1, Prohibited Implicit Conversion: Non-constant argument to function.
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 接受。问题是我不能在那里硬编码值。我怎样才能摆脱这个警告?
最佳答案
这应该可以解决您的 MISRA 问题:
memcpy(&Final_buff[index], Main_cal, (size_t) buffer_size);
规则 10.1 不允许在几种情况下进行隐式转换,包括“表达式不是常量并且是函数参数”,这是您遇到的情况。
关于c - MISRA 2004 要求规则 10.1,禁止隐式转换 : Non-constant argument to function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33429072/