Aviso C26450
Estouro aritmético: a operação 'operador' causa estouro em tempo de compilação. Use um tipo mais amplo para armazenar os operandos (io.1)
Comentários
Este aviso indica que uma operação aritmética foi comprovadamente perdida em tempo de compilação. Isso pode ser afirmado quando os operandos são todos constantes de tempo de compilação. Atualmente, verificamos esses estouros em operações de multiplicação, adição e subtração de deslocamento esquerdo.
Aviso C4307 é uma verificação semelhante no compilador Microsoft C++.
Nome da análise de código: RESULT_OF_ARITHMETIC_OPERATION_PROVABLY_LOSSY
Exemplos
int multiply()
{
const int a = INT_MAX;
const int b = 2;
int c = a * b; // C26450 reported here
return c;
}
Para corrigir esse aviso, use o código a seguir.
long long multiply()
{
const int a = INT_MAX;
const int b = 2;
long long c = static_cast<long long>(a) * b; // OK
return c;
}
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de