我有以下行(减少到最低限度的演示问题):
char version_text[64U] = {'\0'};
此行生成以下 MISRA 错误:
Error[Pm023]: missing elements - braces shall be used to indicate and match the structure in the non-zero initialization of arrays and structures (MISRA C 2004 rule 9.2).
为什么这是一个错误?
我目前的解决方法是:
char version_text[64U] = {0};
这表明该char
类型是signed char
由我的编译器(IAR EW)实现的。
我的理解是 '\0' 是一个字符文字,因此应该匹配 type char
。