【发布时间】:2011-12-16 09:55:31
【问题描述】:
我碰巧遇到了一些类似的编程风格,主要是在 Float 或 Double 操作时。
ratio = 1.0 * (top - bottom) / (right - left);
所有涉及的变量都是浮点数。
将1.0 乘以结果有什么意义?
根据我的想法,乘以 1.0 是一些额外的负担。因为结果不会改变。
或者写一个有and 1==1的条件是不是类似。
P.S:在某些情况下,某些变量(比率除外)被分配给非浮点/双精度值作为长整数或整数。
【问题讨论】:
-
什么语言?什么平台?
-
@Oded 在 C++,Delphi 中看到过这个。
-
real factor 1.0 导致编译器将表达式的一部分视为实数(否则可以是整数),仅此而已
-
将您的语句拆分为three-address code 以找出可能发生类型转换的位置。 [Aho, Sethi, Ullman] 了解更多详情。
-
@user539484:它不依赖于三地址码,而是依赖于语言规则(特别是优先顺序和自动类型转换/提升)。
标签: c++ delphi coding-style