gpt4 book ai didi

c++ - C++ 会自动将 const int 转换为 float 吗?

转载 作者:行者123 更新时间:2023-11-28 03:59:49 25 4
gpt4 key购买 nike

我知道将整数转换为 float (反之亦然)是相当昂贵的。但是,编译器是否会在编译时自动为代码中的常量执行此操作?例如有什么区别吗

float y = 123;
float x = 1 / y;

float y = 123.f;
float x = 1.f / y;

我看到一些执行后者的代码,但我不确定它是出于优化还是安全问题(即即使 y 恰好是 int,也要确保除法是 float )。

我正在使用 gcc(因为答案可能是特定于编译器的。)

此外,任何指向编译器通常可以优化和不能优化的列表的指针都将不胜感激。谢谢!

最佳答案

是的,编译器会自动进行转换。您的两个代码块是相同的。

这不是优化。关闭优化不会使编译器在可执行代码中包含整数到 float 的转换,除非它是一个非常质量很差的实现。

这也不是为了安全。编译器从不做任何“以防万一”操作数恰好是不同类型的事情。编译器知道代码中所有内容的类型。如果你改变了一个变量的类型,所有使用该变量的东西都会被重新编译;编译器不会试图保持其他所有内容不变,而只是更新更改的部分。

关于c++ - C++ 会自动将 const int 转换为 float 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1419963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com