初始化变量时的文字常量后缀

时间:2015-05-12 08:50:34

标签: c++

在初始化变量时始终使用后缀是一个好习惯吗?这些案件怎么样?

float foo = 0.0F;
unsigned int bar = 0U;

或者,如果可能存在转换问题,您是否只会使用文字后缀?

1 个答案:

答案 0 :(得分:2)

这是cpp FAQ

  

当您需要强制编译器将数字文字视为指定类型时,您应该使用这些后缀

还有一个很好的例子:

如果x的类型为float,则表达式x + 5.7的类型为double:它首先将x的值提升为double,然后使用双精度指令执行算术。如果这就是你想要的,那很好;但如果您真的希望它使用单精度指令进行算术运算,则可以将该代码更改为x + 5.7f

还有可读性原因

  

如果您最终使用无符号变量,通常强制您的数字文字也是无符号的。这使得更容易看到编译器将生成“无符号算术”指令。