警告 C26450
算術溢位:' operator ' 運算會在編譯時期造成溢位。 使用較寬的類型來儲存運算元 (io.1)
備註
這個警告表示算數運算在編譯時期是可證明遺失的。 當運算元都是編譯時間常數時,可以判斷提示它。 目前,我們會檢查這類溢位的左移、乘法、加法和減法運算。
警告 C4307 是 Microsoft C++ 編譯器中類似的檢查。
程式碼分析名稱: RESULT_OF_ARITHMETIC_OPERATION_PROVABLY_LOSSY
範例
int multiply()
{
const int a = INT_MAX;
const int b = 2;
int c = a * b; // C26450 reported here
return c;
}
若要更正此警告,請使用下列程式碼。
long long multiply()
{
const int a = INT_MAX;
const int b = 2;
long long c = static_cast<long long>(a) * b; // OK
return c;
}