笔记:C语言数据类型在32位与64位机器上的字节数
读《深入理解计算机系统》
第二章 信息的表示与处理
32位与64位的典型值,单位字节
声明 | 32位机器 | 64位机器 |
char | 1 | 1 |
short int | 2 | 2 |
int | 4 | 4 |
long int | 4 | 8(4?) |
long long int | 8 | 8 |
char* | 4 | 8 |
float | 4 | 4 |
double | 8 | 8 |
不过long int在VC中32与64位编译器均是4字节,貌似表格中数据也不算很典型啊,所以在vc下除了指针大小不同外,其他都没区别。
此外C99新增的long double在标准中只约束了其最小表示范围,比如FLT_MAX、DBL_MAX、LDBL_MAX规定的最低要求均为10^37,所以大多数编译器的double可以精确表示long double的所有值,例如msdn中说明long double the same as double,FLT_MAX=3.402823466e+38F,DBL_MAX=1.7976931348623158e+308
以上参考《C语言参考手册》第五版