我可以定义一个常数,可以是浮子或32位单元:Cast漂浮到int或int来浮动?
const float SecondsPerMinute = 60.0F;
或
const uint32 SecondsPerMinute = 60U;
的const是在一些方程意想不到一个int使用,其中一些方程该期望浮动。我想让我的编译器和静态分析工具很高兴,所以我会根据需要static_cast它到适当的类型。
将const定义为float并将其转换为int或将其定义为int并将其转换为float值会更好吗?它是否有所作为,或者这更多是个人意见的问题?
让我们假设这个常量被用作int和float的次数相等。
如果需要无用的强制类型转换60U添加到60F,您的静态分析工具没有帮助。 –
如果你将它定义为float,那么在每个需要int的方程中,你将把它转换为int,反之亦然。那么为什么你不定义两个常量,一个是int,另一个是float,然后根据需要使用它们?如果不比其他选择更好,这肯定会有相同的表现。唯一的缺点是你的代码大小会增加。 – Nishant
在任一方向的转换中都没有信息丢失(两种表示都是确切的)。任何方向都不需要施放。所以它根本就没有关系。 –