MISRA C:2012 Rule 20.12

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

Описание

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

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

Объяснение

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

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

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

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

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

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

Группа: Директивы предварительной обработки
Категория: Требуемая
Категория AGC: Требуется