MISRA C:2012 Rule 2.4

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

Описание

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

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

Объяснение

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

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

Проект не должен содержать неиспользованные объявления тега: пометьте 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: удобочитаемость
Введенный в R2014b