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