查詢圍繞在確定幀填充的上下文中比較有符號和無符號整數表達式時遇到的警告星號邊框問候語。
問題:
為什麼在更新的程式中比較 int 和 string::size_type 時會發出警告,而原始程式碼會發出警告沒有遇到這個問題?
答案:
如果要與大小進行比較,建議將變數宣告為 unsigned 或 string::size_type 以避免此類警告。建議使用確切的類型進行比較(例如,與字串長度進行比較時使用 string::size_type)。
令人驚訝的比較:
警告源自於不同的有符號和無符號整數的範圍,導致比較中出現意外結果。為了確保清晰,請在執行比較之前將一個值明確轉換為與另一個值相容的類型。
轉換範例:
if (i >= 0) { if ((unsigned)i >= u) iIsGreaterThanOrEqualToU(); else iIsLessThanU(); } else { iIsNegative(); }
進一步說明:
最初的詢問中並沒有明確提到這個問題是否會在《Accelerated C》一書中解決。
以上是為什麼將 int 與 string::size_type 進行比較會在更新的程式碼中觸發警告?的詳細內容。更多資訊請關注PHP中文網其他相關文章!