“1.0f”和“1.f”之间有什么区别?

时间:2013-02-24 02:53:40

标签: c++ floating-point conventions

作为John Carmack的崇拜者,我正在阅读Id Tech的公开编码公约文件(如果您感兴趣的话,请ftp://ftp.idsoftware.com/idstuff/doom3/source/CodeStyleConventions.doc),并且遇到了一个我并不完全理解的惯例:

  

对浮点值使用精度规范,除非明确需要double。

     

float f = 0.5f

     

而不是

     

float f = 0.5;

     

     

float f = 1.0f;

     

而不是

     

float f = 1.f;

这些有何不同?

我可以理解第一个例子中两者之间的区别(后者在引擎盖下进行双向浮点转换),虽然我怀疑它只需要一个非愚蠢的编译器来捕获并产生相同的字节码,没有运行时差异。

但是有没有在你的浮点值声明中添加尾随0的东西改变了什么呢?

1 个答案:

答案 0 :(得分:12)

  

但是有没有在你的浮点值声明中添加尾随0的东西改变了什么呢?

添加零的唯一“事物”将改变是可读性。由此产生的代码将完全相同,因为编译器并不关心,但是具有零的常量将更容易被人类读者阅读。