警告 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:使用帶正負號的類型進行算術
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應