Правило 20.12 MISRA C:2012

Макро-параметр, используемый в качестве операнда к # или ## операторам, который самостоятельно подвергается дальнейшей макро-замене, должен только использоваться в качестве операнда к этим операторам

Описание

Управляйте определением

Макро-параметр, используемый в качестве операнда к # или ## операторам, который самостоятельно подвергается дальнейшей макро-замене, должен только использоваться в качестве операнда к этим операторам.

Объяснение

Параметр к # или ## не расширен до того, чтобы быть используемым. Тот же параметр, появляющийся в другом месте в тексте замены, расширен. Если макро-параметр самостоятельно подвергается макро-замене, ее использование в смешанных контекстах в макро-замене не может оправдать надежды разработчика.

Обменивайтесь сообщениями в отчете

Расширенный макро-параметр param1 является также операндом оператора op.

Поиск и устранение проблем

Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.

Проверяйте информацию

Группа: предварительная обработка директив
Категория: необходимый
Категория AGC: необходимый
Язык: C90, C99