不同的编译器,占据的字节也不同,具体如下表所示:
编译器可以根据自身硬件来选择合适的大小,但是需要满足约束:short和int型至少为16位,long型至少为32位,并且short型长度不能超过int型,而int型不能超过long型。这即是说各个类型的变量长度是由编译器来决定的,而当前主流的编译器中一般是32位机器和64位机器中int型都是4个字节。
扩展资料:
在使用不同编译器时候需要注意他们的数据类型差异,int如此其他数据类型也应当注意,因为并没用人规定某种数据类型应该占据多少字节,以及他所表示的数据是有符号还是无符号,即便有人规定这些内容那么编译器是否愿意按规定来实现谁也说不准。
参考资料:百度百科--整型数据
1、16位编译器
char :1个字节
char*(即指针变量): 2个字节
short int : 2个字节
int: 2个字节
unsigned int : 2个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
2、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个字节
拓展资料:
整型数据的一般分类如下:
1、基本型:类型说明符为int,在内存中占2个字节。
2、短整型:类型说明符为short int或short。所占字节和取值范围均与基本型相同。
3、长整型:类型说明符为long int或long,在内存中占4个字节。
4、无符号型:类型说明符为unsigned。无符号型又可与上述三种类型匹配而构成:
1)无符号基本型:类型说明符为unsigned int或unsigned。
2)无符号短整型:类型说明符为unsigned short。
3)无符号长整型:类型说明符为unsigned long。
不同环境不一样