繁体   English   中英

C中的不同浮点变量给出不同的大小

[英]Different float variables in C giving different sizes

这可能是一个非常“菜鸟般”的问题,但我已经在互联网上进行搜索,找不到答案。 我知道在C中,每种类型的变量都有不同的大小:

char   : 1 byte
short  : 2 bytes
int    : 4 bytes
long   : 4 bytes
float  : 4 bytes
double : 8 bytes

但是,让我们说,例如,我声明一个变量a类不浮子和变量b还float类型。 现在,假设变量a关联了一个浮点数,例如130.25, b关联了5.5。 现在,考虑到浮点数为4个字节长,一旦我将它们各自的值关联起来,肯定ab的大小就不会相同。 那是对的吗? 还是大小相同的变量,而与它们关联的值无关?

变量的大小取决于其类型,而不取决于其值。

不管存储在其中的值如何,两个float变量的大小将始终相同。

请注意,您可以执行以下操作:

float a;
float b;

if(sizeof a == sizeof b)
  printf("a and b have the same size\n");

即使如所示,变量的值未定义 ,以上方法仍然有效。 这是因为sizeof可以在编译时进行评估,因此完全不依赖于实际值。 这是另一个证明,该值不影响变量的大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM