Dela via


Kompilatorvarning (nivå 4, av) C4388

"token" : signerad/osignerad matchningsfel

Anmärkningar

Att använda tokenoperatorn för att jämföra ett signed och ett större unsigned tal krävde att kompilatorn konverterade signed värdet till den större unsigned typen.

Ett sätt att åtgärda den här varningen är om du kastar en av de två typerna när du jämför signed och större unsigned typer.

Den här varningen är inaktiverad som standard. Du kan använda /Wall eller /w44388 aktivera den på kommandoraden som en varning på nivå 4. Eller använd #pragma warning(default:4388) i källfilen. Mer information finns i Kompilatorvarningar som är inaktiverade som standard.

Example

Det här exemplet genererar C4388 och visar hur du åtgärdar det:

// 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;
}

Se även

Kompilatorvarning (nivå 3) C4018
Kompilatorvarning (nivå 4) C4389