C标准之关于数据类型的字节数
C标准中并没有具体给出规定那个基本类型应该是多少字节数
字节数与机器、OS、编译器有关
但规定了以下原则
sizeof(short int) < sizeof(int)
sizeof(int) < sizeof(long int)
short int至少应为16位(2字节)
long int至少应为32位(4字节)
编译器位数 数据类型 | 16位编译器 | 32位 | 64位 |
---|---|---|---|
char | 1个字节 | 1个字节 | 1个字节 |
char* /int * /long *(等所有指针变量) | 2个字节 | 4个字节 | 8个字节 |
short int | 2个字节 | 2个字节 | 2个字节 |
int | 2个字节 | 4个字节 | 4个字节 |
unsigned int | 2个字节 | 4个字节 | 4个字节 |
float | 4个字节 | 4个字节 | 4个字节 |
double | 8个字节 | 8个字节 | 8个字节 |
long | 4个字节 | 4个字节 | 8个字节 |
long long | 8个字节 | 8个字节 | 8个字节 |
unsigned long | 4个字节 | 4个字节 | 8个字节 |
32位的寻址空间是2^32,即32个bit,也就是4个字节。同理64位编译器。指针即地址,所以指针所占字节 等于 系统位数除以8。 |