MISRA C:2012 Rule 5.9

Идентификаторы, которые задают объекты или функции с внутренним рычажным устройством, должны быть уникальными

Описание

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

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

Идентификаторы, которые задают объекты или функции с внутренним рычажным устройством, должны быть уникальными.

Объяснение

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

Реализация Polyspace

Polyspace отмечает static имена переменных, которые являются групповыми в том же модуле перевода.

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

Если вы ожидаете нарушение правила, но не видите его, относитесь, чтобы Диагностировать, Почему Кодирующие Стандартные Нарушения Не Появляются как ожидалось.

Примеры

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

#include<stdint.h>
#include <assert.h>
static int testGlobal;
void foo(){
static char testGlobal;//Noncompliant	
if(1){
	static char testGlobal;//Noncompliant
}
}

В этом примере, идентификатор testGlobal используется для объявления трех переменных в трех различных осциллографах. Поскольку идентификаторами является static и совместно используйте групповое имя, Polyspace отмечает повторения идентификатора.

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

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