MISRA C:2012 Rule 5.6

Имя определения типа должно быть уникальным идентификатором

Описание

Это средство проверки деактивировано в Polyspace® по умолчанию как Вы Анализ кода. Смотрите Средства проверки, Деактивированные в Polyspace, когда Вы Кодируете Анализ По умолчанию (Polyspace Bug Finder Access).

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

Имя определения типа должно быть уникальным идентификатором.

Объяснение

Многократное использование typedef назовите как другой typedef или как имя функции, объекта или enum постоянный может вызвать беспорядок разработчика.

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

XX конфликтов с определением типа называют YY.

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

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

Примеры

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

void func ( void ){
  {
    typedef unsigned char u8_t;
  }
  {
    typedef unsigned char u8_t; /* Non-compliant */
  }
}

typedef float mass;
void func1 ( void ){
  float mass = 0.0f;            /* Non-compliant */
}

В этом примере, typedef назовите u8_t используется дважды. typedef назовите mass также используется в качестве имени идентификатора.

typedef struct list{          /* Compliant - exception */				
  struct list *next;
  unsigned short element;
} list;												

typedef struct{
  struct chain{               /* Non-compliant */	
    struct chain *list2;
    unsigned short element;
  } s1;
  unsigned short length;
} chain;

В этом примере, typedef назовите list совпадает с настоящим именем struct ввод. Правило позволяет этот исключительный случай.

Однако typedef назовите chain различный как настоящее имя struct ввод. Имя chain сопоставлен с различным struct ввод. Поэтому это сталкивается с typedef имя.

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

Группа: Идентификаторы
Категория: необходимый
Категория AGC: необходимый
Введенный в R2014b