Предупреждение C26453
Арифметический переполнение: левое изменение отрицательного подписанного числа не определено (io.4)
Замечания
Это предупреждение указывает, что код слева сдвигает отрицательное целочисленное значение со знаком, которое является несовместимым и активирует определенное поведение реализации.
Имя анализа кода: LEFTSHIFT_NEGATIVE_SIGNED_NUMBER
Пример
void leftshift(int shiftCount)
{
const auto result = -1 << shiftCount; // C26453 reported here
// code
}
Чтобы исправить это предупреждение, используйте следующий код:
void leftshift(int shiftCount)
{
const auto result = ~0u << shiftCount; // OK
// code
}
См. также
26450
26451
26452
26454
ES.101. Использование неподписанных типов для обработки битовых операций
ES.102: используйте подписанные типы для арифметики
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по