MISRA 2004 要求规则 10.1,禁止隐式转换:函数的非常量参数
MISRA 2004 Required Rule 10.1, Prohibited Implicit Conversion: Non-constant argument to function
我正在更改我的代码以满足 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 不允许在几种情况下进行隐式转换,包括 "the expression is not constant and is a function argument",这就是您 运行 遇到的情况。
我正在更改我的代码以满足 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 不允许在几种情况下进行隐式转换,包括 "the expression is not constant and is a function argument",这就是您 运行 遇到的情况。