编译器警告(等级 3)C4287

“operator”: 无符号/负常数不匹配

在有负数的运算中使用了无符号变量。

默认情况下关闭此警告。 有关更多信息,请参见默认情况下处于关闭状态的编译器警告

示例

下面的示例生成 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;
}