编译有关的取值范围

编译有关的取值范围

编译器不同,宽度是不相同,分别如下:

–64位编译器–

char :1个字节 char*(即指针变量): 8个字节 short int : 2个字节 int: 4个字节 -2147483648~2147483647(-2^31~2^31-1) unsigned int : 4个字节 ` 0~4294967295(0~2^32-1) float: 4个字节 double: 8个字节 long: 4个字节 -2147483648~2147483647(-2^31~2^31-1) long long: 8个字节 :-9223372036854775808~9223372036854775807(-2^63~2^63-1) unsigned long: 8个字节 0~4294967295(0~2^32-1) _int64:8个字节 -9223372036854775808~9223372036854775807(-2^63~2^63-1) unsigned long long:0~18446744073709551615(0~2^64-1) unsigned __int64:0~18446744073709551615(0~2^64-1)`

—32位编译器—

char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)(16位机,32位机,64位机各不相同)

short int : 2个字节 int: 4个字节(16位机是2B,32位&64位是4B) unsigned int : 4个字节(16位机是2B,32位&64位是4B)

float: 4个字节 double: 8个字节

long: 4个字节 long long: 8个字节 unsigned long: 4个字节(16&32位是4B,64位是8B)

—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个字