Condividi tramite


Avviso del compilatore (livello 4, off) C4388

'token': mancata corrispondenza con segno/senza segno

L'uso dell'operatore token per confrontare un signed e un numero maggiore unsigned richiedeva al compilatore di convertire il signed valore nel tipo più grande unsigned .

Osservazioni:

Un modo per correggere questo avviso è se si esegue il cast di uno dei due tipi quando si confrontano signed e tipi più grandi unsigned .

Per impostazione predefinita, questo avviso non è attivo. È possibile usare /Wall o /w44388 per abilitarlo nella riga di comando come avviso di livello 4. In alternativa, usare #pragma warning(default:4388) nel file di origine. Per altre informazioni, vedere Avvisi del compilatore disattivati per impostazione predefinita.

Esempio

Questo esempio genera l'errore C4388 e mostra come risolverlo:

// C4388.cpp
// compile with: cl /EHsc /W4 C4388.cpp
#pragma warning(default: 4388)

int main() {
    unsigned long long uc = 0;
    int c = 0;
    unsigned long long c2 = c; // implicit conversion

    if (uc < c)                       // C4388
        uc = 0;

    if (uc < (unsigned long long)(c)) // OK
        uc = 0;

    if (uc < c2)                      // Also OK
        uc = 0;
}

Vedi anche

Avviso del compilatore (livello 3) C4018
Avviso del compilatore (livello 4) C4389