Sdílet prostřednictvím


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

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

Poznámky

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

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

Tento příklad vygeneruje C4018 a ukazuje, jak ho 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