c++ - C++ 中的 C 风格转换和可读性

标签 c++ c casting readability

是的,我知道你不应该在 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 风格转换更糟还是更糟?

最佳答案

它们都是不可读的。你应该写:

d = (i * 23.54) / (d + j);

关于c++ - C++ 中的 C 风格转换和可读性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4399700/

相关文章:

C++——为什么我可以为类 Month 返回一个 int

c++ - 为什么 std::pair 的大小与其元素的大小之和不同?

c++ - 通过引用获取内容

c - C中的位域填充

casting - 字符串转换后 D lang 记录分隔符丢失

使用 cout<<term_cc<color, default, attrib> 输出到 Windows 终端的 C++ 在 Windows 上正确输出颜色和属性,但在 Linux 上不正确

c - 为什么 gcc -ansi 去掉 cosf 之类的声明?

不使用 C 库函数比较 2 个字符串

c++ - 如何在预处理器 (#if) 中转换 static const 以避免溢出

vb.net - 从类型 'String' 到类型 'String' 的转换无效