用于指定零浮点字面值的语法

时间:2016-01-30 16:12:43

标签: c++ syntax floating-point language-lawyer literals

找到这个有趣的:-)如果指定0f,该值将被解释为八进制整数文字。因此,不允许f(十进制15)。 00f.f也不会工作。唯一可行的方法是0.f.0f。还有其他方法吗?不过,我无法弄清楚为什么0.f有效。 0是否被解释为八进制前缀? C ++肯定很复杂,甚至是非常基本的语法〜> _<〜

1 个答案:

答案 0 :(得分:5)

  

仍然,我无法弄清楚为什么0.f

它有效,因为.字符使其成为浮点字面值。 f的浮点字面值为float。小数部分是可选的,如果省略则为零。

由于0..1之间的值的0.X语法,您不能有八进制浮点文字。

  

0是否被解释为八进制前缀?

如果是整数文字,则0前缀是八进制文字的语法。例如:01是八进制,0x1是十六进制,1是十进制。