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