在写C++程序的过程中,很多情况下,尤其是新的C程序员,使用整型变量时经常会混用short和int。前一段时间,有一段比较老的程序在运行了若干年后出了问题,查了半天得知,数据表的ID使用的时候写入用的类型是int读取的时候用的是short。
关于short和int这个问题上网看了一下,网上简直五花八门,什么样的说法都有。现在总结了一下,不对之处请指正。
标准C++规定,int占一个机器字长。在32位系统中int占32位,也就是4个字节,而在老式的16位系统中,int占16位,即2个字节。 在64位 CPU 就要占64位了。而C++标准中只限制规定short int不能超过int的长度,具体长度的可以由C++编译器的实现厂商自行决定。目前流行的32位C++编译器中(比如,VS6.0),通常int占4字节,short int占2字节。其中short int可以简写为short。
sizeof(short ) = 2
sizeof(unsigned short ) = 2
sizeof(int) = 4
sizeof(unsigned int) = 4