我知道在C++中不应该使用C风格的类型转换,但有些情况下,如果这样做,代码会更具可读性,比如下面这两个例子:
d = ((double)i * 23.54) / (d + (double)j);
d = (static_cast<double>(i) * 23.54) / (d + static_cast<double>(j));
哪一个更易读?
现在进入我的主要问题。显然我更喜欢上面的那个,但是我认为有一种方法可以使它更易读:
d = (double(i) * 23.54) / (d + double(j));
我的问题是,这样做是否更加低效?编译器在这种情况下是否会创建更多的double类型,比起其他强制转换方法呢?还是说它足够聪明,不需要这样做?这比典型的C风格强制转换更好还是更差?
i
和j
是int
类型,d
是double
类型,则不需要使用上面提到的任何转换。 - wilx