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