Upozornění C26450
Aritmetické přetečení: Operace operátoru způsobuje přetečení v době kompilace. Použití širšího typu k uložení operandů (io.1)
Poznámky
Toto upozornění značí, že aritmetická operace byla v době kompilace prokazatelně ztráta. Lze jej uplatnit, když jsou operandy všechny konstanty kompilační doby. V současné době u takových přetečení kontrolujeme levý posun, násobení, sčítání a odčítání.
Upozornění C4307 je podobná kontrola kompilátoru jazyka Microsoft C++.
Název analýzy kódu: RESULT_OF_ARITHMETIC_OPERATION_PROVABLY_LOSSY
Příklady
int multiply()
{
const int a = INT_MAX;
const int b = 2;
int c = a * b; // C26450 reported here
return c;
}
Chcete-li toto upozornění opravit, použijte následující kód.
long long multiply()
{
const int a = INT_MAX;
const int b = 2;
long long c = static_cast<long long>(a) * b; // OK
return c;
}
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro