Правило 14.2 A для l oop должно быть правильно сформировано для MISRA C 2012 - PullRequest
2 голосов
/ 30 марта 2020

Почему мой инструмент для анализа правила для MISRA сообщает о возможном нарушении этого для l oop? Например

for(; i != 0 ; i = f(r) ) { int a = 9 + i; }

1 Ответ

2 голосов
/ 31 марта 2020

Согласно документу MISRA C 2012, третье предложение оператора for должно быть выражением, единственным постоянным побочным эффектом которого является изменение значения счетчика l oop, и оно не должно использовать объекты, которые изменен в теле for l oop. Эти ограничения также применяются ко всем функциям, вызываемым в операторе for.

Из предоставленного вами кода я могу предположить, что вызов функции f(r) содержит побочные эффекты, такие как изменение глобальных переменных или r аргумент. Все остальные требования, описанные в тексте правила 14.2, выполнены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...