首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在“浮动=浮动-浮动”中是否存在隐式类型提升?

在“浮动=浮动-浮动”中是否存在隐式类型提升?
EN

Stack Overflow用户
提问于 2019-04-26 07:45:27
回答 1查看 882关注 0票数 10

我们正在使用QA-C来实现MISRA C++一致性,但是该工具为这样的代码提供了一个错误:

代码语言:javascript
复制
float a = foo();
float b = bar();
float c = a - b;

据我所知,这没有隐式类型提升,因为所有事情都会发生在float-sized块中,但是工具告诉我减法会导致一次。有没有可能有隐性晋升的情况?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-26 07:52:07

这里没有隐含的晋升。

当涉及二进制运算符的转换时,它们被称为通常的算术转换。

来自C++标准,[expr]/11

11许多期望算术或枚举类型操作数的二进制运算符以类似的方式引起转换和结果类型。目的是产生一个公共类型,这也是结果的类型。这种模式称为通常的算术转换,定义如下: ..。 (11.4) -否则为,如果其中一个操作数为,则另一个操作数应转换为**

因为在您的示例中这两个操作数都是float,所以没有这样的转换或升级。

所以这可能是工具中的假阳性。

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

https://stackoverflow.com/questions/55863031

复制
相关文章

相似问题

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