MISRA C:2012 Rule 7.2

Суффикс “u” или “U” должен быть применен ко всем целочисленным константам, которые представлены в типе без знака

Описание

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

Суффикс “u” или “U” должен быть применен ко всем целочисленным константам, которые представлены в типе без знака.

Объяснение

Со знаком из константы определяется из:

  • Значение константы.

  • Основа константы: восьмеричный, десятичный или шестнадцатеричный.

  • Размер различных типов.

  • Любые суффиксы используются.

Если вы не используете суффиксный u или U, другой разработчик, смотрящий на ваш код, не может определить легко, подписывается ли константа или без знака.

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

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

Примеры

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

const unsigned long C[] = {
	0x9421FFD0, /*Noncompliant*/
	0x5322E762, 
	0x80000000, /*Noncompliant*/
	0x7FFFFFFF,
	0x00000001,
	0x83241947, /*Noncompliant*/
	0x57112957,
	0x2640EA23
};

const unsigned long D[] = {
	0x9421FFD0U, /*Compliant*/
	0x80000000U, /*Compliant*/
	0x83241947U, /*Compliant*/
};

В этом примере, Polyspace® отмечает члены без знака C. Например, 0x9421FFD0 номер без знака в среде на 32 бита, потому что это превышает способность целого числа со знаком. Поскольку номер без знака испытывает недостаток в суффиксном u или U, Polyspace отмечает его. Ind , числа без знака используют суффикс и не отмечаются.

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

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