編譯器警告 (層級 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;
}