Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 3) C4018

Token : Neshoda se znaménky nebo nepřiřazenými znaménkami

Použití operátoru tokenu k porovnání signed a unsigned čísel vyžaduje kompilátor k převodu signed hodnoty na unsigned.

Poznámky

Jedním ze způsobů, jak toto upozornění vyřešit, je přetypování jednoho z těchto dvou typů při porovnávání signed a unsigned typech.

Příklad

Tato ukázka vygeneruje C4018 a ukazuje, jak ji opravit:

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

Viz také

Upozornění kompilátoru (úroveň 4) C4388
Upozornění kompilátoru (úroveň 4) C4389