首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么VC C4244警告(可能的数据丢失)专门处理'int‘?

为什么VC C4244警告(可能的数据丢失)专门处理'int‘?
EN

Stack Overflow用户
提问于 2012-08-08 23:23:09
回答 1查看 348关注 0票数 3

下面的代码示例演示从shortchar的隐式强制转换在级别3激发,而从intchar的隐式强制转换仅在警告级别4激发。

代码语言:javascript
运行
复制
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级。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-08 23:28:36

一个原因可能是,涉及较小类型的算术操作实际上是使用提升为int的值执行的,因此将int结果分配回原始大小稍微更合理一些。

将短整型赋值给char几乎总是错误的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11867887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档