一个经典的问题:一个int占多少字节
即: 2 B ≤ short ≤ int ≤ 4 B≤ long
① 平台:VC++6.0, 64 bit win7
① 平台:DEV-C++5.11, 64 bit win7
上述两平台结果相同:
char : 1 B
short :2 B
int : 4 B
unsigned :4 B
long :4 B(规定上只说 int ≤ 4 B≤ long,所以long和int一样长是可以的)
float :4 B
double :8 B
另有类型转换表:(横向为必然要进行的转换)
高 double ←← float
↑ ↑
↑ long
↑ ↑
↑ unsigned
↑ ↑
低 int ← ← char,short
自动转换顺序表
PS:
一方面,经典C的实质标准《The C Programming Language》是后来C89,C99的重要理论参考,其规定的重要性不言而喻,也是众多C语言开发者,研究者的“圣经”;
另一方面,《The C Programming Language》在很多方面只对C的特性进行了描述,并没有给出具体实现,也没有硬性规定。并且,即使是后来ISO制定的C89,C99,具体的C编译器也不一定全都遵守/支持。所以对于《The C Programming Language》或者后来的各类标准,只能作参考,怎么实现还要看具体的编译器,机器情况,这也是动手的意义所在。
参考:http://blog.51cto.com/charlesxie/939680
声明:除已注明的引用外,文章系作者原创,引用转载请注明出处,如有必要请联系作者。