C中浮动常量的sizeof()

在C语言中,我们有三种浮动数据类型,即。 浮动 , 双重的 长双人 .这三种类型的确切大小取决于C编译器的实现/平台。下面的程序可以用来找出机器上每种浮动数据类型的大小。

null

#include "stdio.h"
int main()
{
printf ( "%d %d %d" , sizeof ( float ), sizeof ( double ), sizeof ( long double ));
return 0;
}


但是,浮点常量的大小如何(例如31.4或2.718)?例如,如果我们有如下定义的PI宏,那么sizeof(3.14)是多少。

#定义PI 3.14

现在如果我们这样做了 sizeof(PI) ,它的尺寸是多少?等于 sizeof(浮动) ? 或者它也依赖于编译器的实现。对于浮动常数,C标准(C11即ISO/IEC 9899:2011)给出了指南。根据C11第6.4.4.2条 非固定浮动常量的类型为double。如果后缀为字母f或f,则其类型为float。如果以字母l或l作为后缀,则其类型为long double。

这意味着浮动常数的类型与 双重的 数据类型。所以如果 双重的 在机器上,浮点常量的大小为8字节。你可以通过下面的程序来了解这一点

#include "stdio.h"
#define PI 3.14
int main()
{
printf ( "%d" , sizeof (PI));
return 0;
}


根据上述C标准条款,浮动常数可转换为 浮动 使用f或f输入。类似地,浮动常量可以转换为 长双人 通过使用l或l。因此,在猜测以下内容的输出时,不需要太多考虑:

#include "stdio.h"
int main()
{
printf ( "%d %d" , sizeof (3.14F), sizeof (3.14L));
return 0;
}


如果你觉得以上内容有用,请点击Like/Tweet/G+1。此外,请留下我们的评论进一步澄清或信息。我们很乐意帮助和学习

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享