首頁 > 後端開發 > C++ > 為什麼將 int 與 string::size_type 進行比較會在更新的程式碼中觸發警告?

為什麼將 int 與 string::size_type 進行比較會在更新的程式碼中觸發警告?

Linda Hamilton
發布: 2024-11-07 03:39:02
原創
622 人瀏覽過

Why does comparing an int to string::size_type trigger a warning in the updated code?

有符號和無符號整數表達式之間的比較:警告

查詢圍繞在確定幀填充的上下文中比較有符號和無符號整數表達式時遇到的警告星號邊框問候語。

問題:

為什麼在更新的程式中比較 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板