(7)32/64位机器中,各数据类型所占位数的区别

  • 在32位机器和64机器中int类型都占用4个字节。编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:short和int型至少为16位,long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型。这即是说各个类型的变量长度是由编译器来决定的,而当前主流的编译器中一般是32位机器和64位机器中int型都是4个字节(例如,GCC)。下面列举在GCC编译器下32位机器和64位机器各个类型变量所占字节数:
 C类型 32位 64位 取值范围
char 1 1 –128 ~ 127
short int 2 2 –32,768 ~ 32,767
int 4 4 由操作系统决定,现常见为4字节 (32bit)  即-2,147,483,648 ~ 2,147,483,647 (10位数)
long int 4 8 –2,147,483,648 ~ 2,147,483,647 (10位数)
long long int 8 8 –9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (19位数)
char*(指针) 4 8 -
float 4 4 3.4E +/- 38 (7 digits)
double 8 8 1.7E +/- 308 (15 digits)

指针类型存储的是所指向变量的地址,所以32位机器只需要32bit,而64位机器需要64bit。

猜你喜欢

转载自blog.csdn.net/qq_40329851/article/details/114837662