在32位、64位系统当中,唯一改变的是指针的长度;在32位系统当中是4个字节、64位则是8个字节。所谓的32位、64位,这个指的是寄存器的位宽。
32位平台下结果:
64位平台下结果:
一、下面几点是值得大家注意的:
1、关于 int 的取值范围,缺省的int数值范围是由编译器设计者决定的,通常都是机器最为自然高效的位数。甚至,我们在32位的机器上,前提没有什么指令可以高效的的处理更短的整型值,我们可以将short、int、long都设置成32位。
2、浮点数在缺省的情况下 表示的是double,但是你可以在后面加上L/l或者F/f来表明其long double 或者是 float数据类型。
3、当移植问题比较重要的时候,最佳的方案就是将使用的char值限制在 unsigned char 和 signed char取值范围之间。并且只当显示的声明signed char 和unsigned char时, 才对其执行算数运算;这是考虑到char虽然在设计上是为了存储字符,但是在很多实际应用当中,尤其是嵌入式产品设计当中,本质上我们用它存储小整数,不同的编译器会将缺省的char视为unsigned或者是 signed,但是有些机器在处理signed char上得心应手,硬性将其变为unsigned,效率可能受损。所以还要有些矛盾的指出,全部显示的声明为 unsigned char 和 signed char 并不是上上之策。
二、在32位操作系统下:
1:整形
int 4字节
longint 4字节
shortint 2字节
unsignedint 4字节
unsignedlong int 4字节
unsignedshort int 2字节