编译器警告(等级 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()
{
}