編譯器警告 (層級 3) C4018
' token ' : 帶正負號/不帶正負號不符
使用標記 運算子來比較 signed
,編譯 unsigned
程式需要數位才能將 signed
值 unsigned
轉換成 。
備註
修正此警告的其中一個方法是,當您比較 signed
和 unsigned
類型時,將其中一個類型轉換成其中一種。
範例
此範例會產生 C4018,並示範如何修正:
// C4018.cpp
// compile with: cl /EHsc /W4 C4018.cpp
int main() {
unsigned int uc = 0;
int c = 0;
unsigned int c2 = c; // implicit conversion
if (uc < c) // C4018
uc = 0;
if (uc < unsigned(c)) // OK
uc = 0;
if (uc < c2) // Also OK
uc = 0;
}
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應