共用方式為


警告 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;
}

另請參閱

26451
26452
26453
26454
ES.103:不要溢位