У меня есть следующая строка (сокращенная до минимальной демонстрации проблемы):
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
реализован моим компилятором (IAR EW) как signed char
.
Насколько я понимаю, '\0' является символьным литералом и, следовательно, должен соответствовать типу char
.