1.Linux下查看系统位数的指令: getconf LONG_BIT uname -a uname -m
liuzj@ET302Buildver:~/zhanghong/make$ getconf LONG_BIT
64
liuzj@ET302Buildver:~/zhanghong/make$ uname -a
Linux ET302Buildver 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
liuzj@ET302Buildver:~/zhanghong/make$ uname -m
x86_64
liuzj@ET302Buildver:~/zhanghong/make$
2.32位机器和64位机器长读对比:
32位机器:
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
64位编译器:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 8个字节
long long: 8个字节
unsigned long: 8个字节
3.例子:
#include<stdio.h>
int main()
{
int a,b,c,d,e,f,g,h;
a=sizeof(char); //1
b=sizeof(float);//4
c=sizeof(long long);//8
d=sizeof(unsigned long);//8 32位的话为4
e=sizeof(int);//4
f=sizeof(double);//8
g=sizeof(void *);//8 32位的话为4
h=sizeof(char *);//8 32位的话为4
printf("%d%d%d%d%d%d%d%d\n",a,b,c,d,e,f,g,h);
return 0;
}
输出: