下面的代码示例演示从short
到char
的隐式强制转换在级别3激发,而从int
到char
的隐式强制转换仅在警告级别4激发。
int main()
{
short as = 1;
int ai = 1;
char b1 = as; // warning C4244 (Level 3)
char b2 = ai; // warning C4244 (Level 4)
return 0;
}
这是什么原因- documentation省略了这个原因?
在更改变量类型并使用此警告识别可能的转换问题后,我遇到了这个问题。我忽略了警告,并意识到我必须切换到4级。
发布于 2012-08-08 23:28:36
一个原因可能是,涉及较小类型的算术操作实际上是使用提升为int的值执行的,因此将int结果分配回原始大小稍微更合理一些。
将短整型赋值给char几乎总是错误的。
https://stackoverflow.com/questions/11867887
复制相似问题