为什么不将“0f”视为C中的浮点文字?

栏目: C · 发布时间: 7年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/3961467/why-isnt-0f-treated-as-a-floating-point-literal-in-c

为什么C没有被处理为浮点文字?

#include <iostream>

using namespace std;

int main(){
  cout << 0f << endl;

  return 0;
}

上面的编译给了我

C2509 (syntax error: ‘bad suffix on number’) 

使用VS2008.

如果有一个明确的说明这个设计决定的原因,那么它将在C99​​“理由”文档中(C将所有这些东西从C中逐字复制而不重新考虑).但是没有.这是关于’f’后缀的所有内容:

§6.4.4.2 Floating constants

Consistent with existing practice, a floating-point constant is defined to have

type double . Since C89 allows expressions that contain only float operands

to be performed in float arithmetic rather than double , a method of

expressing explicit float constants is desirable. The long double type

raises similar issues.

The F and L suffixes have been added to convey type information with

floating constants, much like the L suffix does for long integers. The default

type of floating constants remains double for compatibility with prior practice.

Lower-case f and l are also allowed as suffixes.

有一个隐含的理由,但是.请注意:“…已经添加了后缀,以便用浮动常量来传递类型信息.”标准的作者正在考虑数字常数,因为在你到达后缀之后,已经是明确的整数或浮点.后缀仅在该类别中具有特殊性,它不能将数字从一个类别翻转到另一个类别.这是由实际语法(C99§6.4.4)备份的,它首先将数字常量定义为整数常量或浮点常量,然后为每个常量定义单独的后缀类.

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/3961467/why-isnt-0f-treated-as-a-floating-point-literal-in-c


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

浴缸里的惊叹

浴缸里的惊叹

顾森 / 人民邮电出版社 / 2014-7 / 49.00元

《浴缸里的惊叹》是一本趣题集,里面的题目全部来自于作者顾森十余年来的精心收集,包括几何、组合、行程、数字、概率、逻辑、博弈、策略等诸多类别,其中既有小学奥数当中的经典题目,又有世界级的著名难题,但它们无一例外都是作者心目中的“好题”:题目本身简单而不容易,答案出人意料却又在情理之中,解法优雅精巧令人拍案叫绝。作者还有意设置了语言和情境两个类别的问题,希望让完全没有数学背景的读者也能体会到解题的乐趣......一起来看看 《浴缸里的惊叹》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具