编译器警告(等级 2)C4307

“operator”:有符号整型常量溢出

运算符用于表达式,该表达式导致整数常量溢出为其分配的空间。 可能需要为常量使用更大的类型。 signed int 的值小于 unsigned int,因为 signed int 使用一位来表示符号。

下面的示例生成 C4307:

// C4307.cpp
// compile with: /W2
int i = 2000000000 + 2000000000;   // C4307
int j = (unsigned)2000000000 + 2000000000;   // OK

int main()
{
}