共用方式為


警告 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:使用帶正負號的類型進行算術