Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 3) C4018

"token" : niezgodność podpisanych/niepodpisanych

Użycie operatora tokenu do porównania signed i unsigned liczb wymaganych przez kompilator w celu przekonwertowania signed wartości na unsigned.

Uwagi

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

Przykład

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

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

Zobacz też

Ostrzeżenie kompilatora (poziom 4) C4388
Ostrzeżenie kompilatora (poziom 4) C4389