在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