Ostrzeżenie kompilatora (poziom 3) C4018
"token" : niezgodność podpisanych/niepodpisanych
Użycie operatora tokenu do porównania signed
i unsigned
liczb wymaganych przez kompilator w celu przekonwertowania signed
wartości na unsigned
.
Uwagi
Jednym ze sposobów naprawienia tego ostrzeżenia jest rzutowanie jednego z dwóch typów podczas porównywania signed
i unsigned
typów.
Przykład
Ten przykład generuje kod C4018 i pokazuje, jak rozwiązać ten problem:
// 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;
}
Zobacz też
Ostrzeżenie kompilatora (poziom 4) C4388
Ostrzeżenie kompilatora (poziom 4) C4389