Ano*_*ous 2 c++ performance implicit-typing
当我在代码中使用命名常量时,我一直在尝试减少隐式类型转换.例如而不是使用
const double foo = 5;
Run Code Online (Sandbox Code Playgroud)
我会用
const double foo = 5.0;
Run Code Online (Sandbox Code Playgroud)
这样就不需要进行类型转换.但是,在我做这样的事情的表达中......
const double halfFoo = foo / 2;
Run Code Online (Sandbox Code Playgroud)
是否将2评估为整数并且是否隐式转换?我应该使用2.0吗?
将2被隐式转换为双,因为foo是双.你必须要小心,因为如果foo是,例如,整数,将执行整数除法,然后结果将存储在halfFoo.
我认为总是使用浮点文字是好的做法(例如,2.0或者2.你打算将它们用作浮点值.它更加一致,可以帮助你找到可能出现这种事情的有害错误.
| 归档时间: |
|
| 查看次数: |
4257 次 |
| 最近记录: |