Compiler Warning (level 3) C4287

'operator' : unsigned/negative constant mismatch

An unsigned variable was used in an operation with a negative number.

This warning is off by default. See Compiler Warnings That Are Off by Default for more information.


The following sample generates C4287:

// C4287.cpp
// compile with: /W3
#pragma warning(default : 4287)
#include <stdio.h>

int main()
    unsigned int u = 1;
    if (u < -1)   // C4287
        printf_s("u LT -1");
        printf_s("u !LT -1");
    return 0;