Постоянное значение выходит за пределы области значений целочисленного типа данных
Целочисленное постоянное переполнение происходит, когда вы присваиваете время компиляции, постоянное переменной целого числа со знаком, тип данных которой не может разместить значение. n
- битное целое число со знаком содержит значения в области значений [-2
.n
- 1, 2n
-1-1]
Например, c
8-битный char
со знаком переменная, которая не может содержать значение 255.
signed char c = 255;
Чтобы определить размеры фундаментальных типов, Средство поиска Ошибки использует вашу спецификацию в Target processor type (-target)
.
Поведение по умолчанию для постоянного переполнения может варьироваться между компиляторами и платформами. Сохранение постоянного переполнения может уменьшать мобильность вашего кода.
Даже если ваши компиляторы переносят переполняющиеся константы с предупреждением, всеобъемлющее поведение может быть непреднамеренным и вызвать неожиданные результаты.
Проверяйте, является ли постоянное значение тем, что вы предназначили. Если значение правильно, используйте различное, возможно шире, тип данных для переменной.
Группа: числовой |
Язык: C | C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки:
INT_CONSTANT_OVFL |
Удар: носитель |
ID CWE: 128, 189, 190, 191 |
Find defects (-checkers)
| Integer conversion overflow
| Integer overflow
| Sign change integer conversion overflow
| Unsigned integer constant overflow
| Unsigned integer conversion overflow
| Unsigned integer overflow