以下是C语言中不同数据类型在32位和64位系统上的取值范围和占用字节的表格:
数据类型 | 取值范围(32位系统) | 占用字节(32位系统) | 取值范围(64位系统) | 占用字节(64位系统) |
---|---|---|---|---|
char | -128 到 127 | 1 | -128 到 127 | 1 |
unsigned char | 0 到 255 | 1 | 0 到 255 | 1 |
short | -32,768 到 32,767 | 2 | -32,768 到 32,767 | 2 |
unsigned short | 0 到 65,535 | 2 | 0 到 65,535 | 2 |
int | -2,147,483,648 到 2,147,483,647 | 4 | -2,147,483,648 到 2,147,483,647 | 4 |
unsigned int | 0 到 4,294,967,295 | 4 | 0 到 4,294,967,295 | 4 |
long | -2,147,483,648 到 2,147,483,647 | 4 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 8 |
unsigned long | 0 到 4,294,967,295 | 4 | 0 到 18,446,744,073,709,551,615 | 8 |
long long | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 8 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 8 |
unsigned long long | 0 到 18,446,744,073,709,551,615 | 8 | 0 到 18,446,744,073,709,551,615 | 8 |
float | 1.2E-38 到 3.4E+38 | 4 | 1.2E-38 到 3.4E+38 | 4 |
double | 2.3E-308 到 1.7E+308 | 8 | 2.3E-308 到 1.7E+308 | 8 |
long double | 2.3E-308 到 1.7E+308 | 8 | 2.3E-308 到 1.7E+308 | 16 |
请注意,上述表格中的取值范围和占用字节是一般情况下的典型值,实际取值范围和占用字节可能会因编译器、操作系统和硬件平台的不同而有所变化。此外,还有一些其他数据类型(如 size_t
、ptrdiff_t
等)没有包含在表格中,它们的取值范围和占用字节也会根据系统的不同而有所变化。