警告:有符號與無符號整數表達式之間的比較
簡介
練習時在「Accelerated C」中的2-3 中,使用者遇到了編譯器警告:「有符號和無符號整數表達式之間的比較」。當有符號整數 (int) 與 string::size_type(一種常用於字串長度的資料類型)進行比較時,會發生此問題。警告原因
出現警告因為有符號和無符號整數類型具有不同的範圍。當比較這些類型時,結果可能會出乎意料。編譯器發出此警告是為了提醒程式設計師可能會出現令人困惑的結果。建議做法
為了避免此問題,建議明確指定整數是否有符號或未簽名。將整數與字串長度或其他無符號值進行比較時,請將整數宣告為 unsigned int 或 size_t 以符合所比較的資料類型。這可確保比較產生預期結果。範例程式碼
在提供的程式碼中,padtopbottom 應宣告為unsigned int 以符合string::size_type 變數c:unsigned int padtopbottom; cin >> padtopbottom; unsigned int padsides; cin >> padsides; if (r == padtopbottom + 1 && c == padsides + 1) { // ... }
附加說明
以上是為什麼我在 C 中收到「有符號和無符號整數表達式之間的比較」警告?的詳細內容。更多資訊請關注PHP中文網其他相關文章!