c语言类型所占字节数

Python013

c语言类型所占字节数,第1张

类型常见的有char、int、long、short、float、double及指针等.字符类型这里单只char,char变量在内存中存储的是字符对应的ASCII码值。所以长度也是固定的,为1个字节。整数类型查了资料发现对各个类型的整数占用字节数是有一个规定的,虽然16位32位或者64位的机子各种类型所占用的长度并不一样。规则如下:short 至少占用2个字节。int 建议为一个机器字长。32位环境下机器字长为4字节,64位环境下机器字长为8字节。short 的长度不能大于 int,long 的长度不能小于 int。所以说,short并不一定短,long并不一定短,有可能都和int一样长。浮点数(小数)C中浮点数有两种,float和double,不像整数,小数的长度始终是固定的,float占用4个字节,double占用8个字节。指针C中指针即为地址,所以编辑器的寻址空间则是指针的地址范围。所以指针变量在32位机器的寻址空间为2^32,要将所有地址都表示出来则需要为4个字节长度,所以要占用4个字节长度。同理64位的编译器则需要8个字节长度。

在C语言中,一个数字占4个字节或8个字节。(以下试验都是基于32位计算机系统)当该数字为整数时,占4个字节(默认转换为int类型);当该数字为小数时,占8个字节(默认转换为double类型)。可以通过如下的程序段来验证:printf("%d\n",sizeof(4))//输出4,即占4个字节(转换为int类型,相当于sizeof(int))printf("%d\n",sizeof(4.5))//输出8,即占8个字节(转换为double类型,相当于sizeof(double))

int有时候占4个字节(在Win32),有时候占2个字节(在DOS)  。

这和操作系统的位数有关,一个int的大小是操作系统的一个字长。

TC是16位系统程序,所以int是16bit就是两个字节。

在32位linux和32位Windows下,都是4个字节,也就是目前最常用的VC和gcc结果。

依据程序编译器的不同,int定义的字节数不同。

常用的单片机编译器,如KEIL下,51类单片机的C语言中,int代表2个byte(16位);如果是32位ARM处理器的C语言中,则int代表4个byte(32位)

PIC单片机的PICC中8位系列单片机的C语言里int表示16位。

而不少PC端软件的编译器则会根据操作系统或处理器(如64位XP)把int定义为8 byte(64位)。