exponenta event banner

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

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

Описание

Определение правила

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

Объяснение

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

Дополнительное сообщение в отчете

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

Поиск неисправностей

Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.

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

Группа: Директивы предварительной обработки
Категория: Обязательно
Категория СМЖЛ: требуется