MISRA C ++:2008 правил 3-9-1

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

Описание

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

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

Объяснение

Если redeclaration не является лексемой для лексемы, идентичной предыдущему объявлению, это не ясно из визуального осмотра, которые возражают, или функция повторно объявляется.

Реализация Polyspace

Средство проверки правила сравнивает текущее объявление с последним замеченным объявлением.

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

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

Переменный varName не совместим с предыдущим объявлением.

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

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

Примеры

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

typedef int* intptr;

int* map;
extern intptr map; //Noncompliant

intptr table;
extern intptr table; //Compliant

В этом примере переменная map объявляется дважды. Второе объявление использует typedef, который решает к типу первого объявления. Из-за typedef второе объявление не является лексемой для лексемы, идентичной первому.

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

Группа: фундаментальные понятия
Категория: необходимый

Введенный в R2013b