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

Проект не должен содержать неиспользованные объявления тега

Описание

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

Проект не должен содержать неиспользованные объявления тега.

Объяснение

Если тег объявляется, но не используется, рецензент не знает, избыточен ли тег или если это не использовано по ошибке.

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

Проект не должен содержать неиспользованные объявления тега: тег tag_name не используется.

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

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

Примеры

развернуть все

void unusedTag ( void )
{
    enum state1 { S_init, S_run, S_sleep };	/* Non-compliant  */			
}

void usedTag ( void )
{
    enum state2 { S_init, S_run, S_sleep };	/* Compliant  */			
    enum state2 my_State = S_init;
}

В этом примере, в функциональном unusedTag, тег state1 задается, но не используется. Поэтому правило нарушено.

typedef struct record_t		/* Non-compliant  */	
{
    unsigned short key;
    unsigned short val;
} record1_t;


typedef struct			   /* Compliant */						
{
    unsigned short key;
    unsigned short val;
} record2_t;

record1_t myRecord1_t;
record2_t myRecord2_t;

В этом примере тег record_t появляется только в typedef record1_t. В остальной части модуля перевода тип используется record1_t. Поэтому правило нарушено.

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

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

Введенный в R2014b