ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
1039777 Топик полностью
teap0t (24.09.2020 17:26, просмотров: 549) ответил teap0t на Несколько интервью по личным вопросам. Продолжение_3. Продолжение_2 по ссылке
#14 Сделал такой костыль, после чего ошибки компиляции исчезли. "Done. 0 error(s), 0 warning(s) ". Не откажите в любезности, гляньте, правильно ли? 
  #define assert_param(expr) do {_Pragma ("diag_suppress=Pm049") \
   ((void)0); \
    _Pragma ("diag_default=Pm049") } while ( 0 )

Pm049 - та самая ошибка "Error[Pm049]: all non-null statements shall have a side-effect (MISRA C 2004 rule 14.2)".
Это костыль, потому что подавляет проверку ошибки. С другой стороны известно, что ошибки-то нет и требуется просто способ компиляции библиотечного кода с выставленной опцией "MISRA2004" без обрамления каждого "assert_param(expr)" директивами условной компиляции.
Что скажете?


Было:

  /* Check the parameters */
  assert_param(IS_NVIC_PRIORITY_GROUP(NVIC_PriorityGroup));

Развернулось:

  /* Check the parameters */
  do {_Pragma ("diag_suppress=Pm049") ((void)0); _Pragma ("diag_default=Pm049") } while ( 0 );
Это я, здравствуйте. http://the-epic-file.com/bookshelf.htm