编译器中
❶ C语言中(Vc6.0),int, char,double分别占多少字节
C语言中的基本数据类型大小在不同位数的编译器中有所不同。在16位编译器中,char占用1个字节,short int占用2个字节,int占用2个字节,unsigned int同样占用2个字节,float占用4个字节,double占用8个字节,long同样占用4个字节,long long占用8个字节,unsigned long占用4个字节。
而在32位编译器中,char的大小保持不变,仍然为1个字节,char*(指针变量)占用4个字节,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个字节。
总结来说,char在所有位数的编译器中都是1个字节,short int在16位和32位编译器中为2个字节,在64位编译器中为2个字节,int在16位编译器中为2个字节,在32位和64位编译器中为4个字节,unsigned int的大小与int相同,float在所有位数编译器中为4个字节,double在所有位数编译器中为8个字节,long在16位和32位编译器中为4个字节,在64位编译器中为8个字节,long long在所有位数编译器中为8个字节,unsigned long的大小与long相同。
这种大小的差异主要是因为不同位数的编译器对内存寻址方式的不同。在16位编译器中,地址空间较小,因此数据类型较小,而在32位和64位编译器中,地址空间较大,因此数据类型较大。
需要注意的是,这些大小并不是固定的,它们还受到操作系统、编译器和其他因素的影响。因此,在编写程序时,需要根据实际情况来确定数据类型的大小。
例如,在某些操作系统中,int的大小可能为4个字节,而在其他操作系统中,int的大小可能为2个字节。因此,在编写跨平台的程序时,需要特别注意数据类型的大小。
此外,还有一种称为long long int的数据类型,它在64位编译器中占用8个字节,在32位编译器中也占用8个字节,而在16位编译器中,它可能占用4个字节。
综上所述,C语言中不同数据类型的大小在不同位数的编译器中有所不同,需要根据实际情况来确定数据类型的大小,以确保程序的正确性和跨平台性。