Определенно это проблема проверки статического анализатора.
Ниже сделайте то же самое, и оба должны пройти проверку.
ConnectCommand(COMMAND_TYPE const command)
ConnectCommand(const COMMAND_TYPE command)
Хотя юридический код, использующий typedef
массива, запутал вашу программу проверки. ИМО, этого это стиль дизайна, которого лучше избегать.
Создание этой вики сообщества для справки. Предложите удалить, как только появится хороший ответ.
<удар>
При просмотре я подозреваю, что проблема в Misra - она дает ложное предупреждение. # 2 и # 3, прокомментированные ниже, делают то же самое. № 4 избыточен с № 2, № 3.
Я либо удалю этот ответ, либо переработаю его правильно.
Предложить попытку
typedef Unsigned int8 COMMAND_TYPE[6];
typedef const Unsigned int8 CONST_COMMAND_TYPE[6];
void ConnectCommand(CONST_COMMAND_TYPE command) {
...
}
COMMAND_TYPE c;
ConnectCommand(c);
const
в ConnectCommand(COMMAND_TYPE const command) { ...}
относится к const
command
. command
— это указатель на объекты типа COMMAND_TYPE
. const command
подразумевает, что указатель не должен изменяться в теле функции ConnectCommand()
.
"const" в предупреждении "... type pointer to const" рекомендует использовать const
для типа объекта, на который на указывает command
. Это связано с тем, что данные, на которые указывает command
, не изменяются.
// add could drop this const
// | |
ConnectCommand(const COMMAND_TYPE const command)
забастовка>
person
Community
schedule
07.04.2016
Unsigned
? - person Keith Thompson   schedule 07.04.2016int8
), которые уже есть в стандартной библиотеке. Смотритеstdint.h
/inttypes.h
! И имяint8
для типа unsigned вводит в заблуждение. - person too honest for this site   schedule 07.04.2016const
, только его элементы. - person too honest for this site   schedule 07.04.2016uint8_t
глупости и отсутствующего возвращаемого типа функции, я чувствую, что это вообще не настоящий код. Вы уверены, что реальная функция принимает в качестве параметра не указатель, а массив? Скопируйте/вставьте фактический код. - person Lundin   schedule 08.04.2016