Avviso del compilatore (livello 3) C4018
'token': mancata corrispondenza con segno/senza segno
L'uso dell'operatore token per confrontare signed
e unsigned
i numeri richiedevano al compilatore di convertire il signed
valore in unsigned
.
Osservazioni:
Un modo per correggere questo avviso è se si esegue il cast di uno dei due tipi quando si confrontano signed
i tipi e unsigned
.
Esempio
Questo esempio genera l'errore C4018 e mostra come risolverlo:
// 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;
}
Vedi anche
Avviso del compilatore (livello 4) C4388
Avviso del compilatore (livello 4) C4389