Compiler Warning (level 3) C4287

 

The latest version of this topic can be found at 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.

Example

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");  
    else  
        printf_s("u !LT -1");  
    return 0;  
}