Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 4, wyłączony) C4388

"token" : niezgodność podpisanych/niepodpisanych

Użycie operatora tokenu do porównania signed i większej unsigned liczby wymaganej przez kompilator w celu przekonwertowania signed wartości na większy unsigned typ.

Uwagi

Jednym ze sposobów naprawienia tego ostrzeżenia jest rzutowanie jednego z dwóch typów podczas porównywania signed i większych unsigned typów.

To ostrzeżenie jest domyślnie wyłączone. Można użyć /Wall lub /w44388 włączyć go w wierszu polecenia jako ostrzeżenie poziomu 4. Możesz też użyć go #pragma warning(default:4388) w pliku źródłowym. Aby uzyskać więcej informacji, zobacz Ostrzeżenia kompilatora, które są domyślnie wyłączone.

Przykład

Ten przykład generuje kod C4388 i pokazuje, jak rozwiązać ten problem:

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

Zobacz też

Ostrzeżenie kompilatora (poziom 3) C4018
Ostrzeżenie kompilatora (poziom 4) C4389