编译器警告(级别 4,关闭)C4365
“action”:从“type_1”转换到“type_2”,有符号/无符号不匹配
例如,你尝试将无符号值转换为有符号值。 当运行时的源值不在目标类型的范围内时,此模式可能会导致意外结果。 例如将负值转换为带符号的值。
默认情况下,C4365 处于关闭状态。 有关详细信息,请参阅 Compiler Warnings That Are Off by Default。
示例
以下示例生成 C4365。
// C4365.cpp
// compile with: /W4
#pragma warning(default:4365)
int f(int) { return 0; }
void Test(size_t i) {}
int main() {
unsigned int n = 10;
int o = 10;
n++;
f(n); // C4365
f(o); // OK
Test( -19 ); // C4365
}