[英]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个字节长,一旦我将它们各自的值关联起来,肯定a
和b
的大小就不会相同。 那是对的吗? 还是大小相同的变量,而与它们关联的值无关?
变量的大小取决于其类型,而不取决于其值。
不管存储在其中的值如何,两个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.