Функции не должны вызывать себя, ни один прямо или косвенно
Функции не должны вызывать себя, ни один прямо или косвенно.
Переменные, локальные для функции, хранятся в стеке вызовов. Если вызовы функции самостоятельно прямо или косвенно несколько раз, доступное стековое пространство может быть превышено, вызвав серьезный отказ. Если рекурсией плотно не управляют, она затрудняет, чтобы определить максимальное требуемое стековое пространство.
Средство проверки сообщает о каждой функции, которая вызывает себя, прямо или косвенно. Даже если несколько функций вовлечены в один цикл рекурсии, о каждой функции индивидуально сообщают.
Можно вычислить общее количество циклов рекурсии с помощью метрики сложности кода Number of Recursions
.
Сообщение в Отчете: Функция XX вызвана косвенно YY.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: Функция |
Категория: необходимый |
Категория AGC: необходимый |
Check MISRA C:2012 (-misra3)
| Number of Direct Recursions
| Number of Recursions