MISRA C:2012 Rule 20.12

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

Описание

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

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

Объяснение

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

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

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

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

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

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

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