2024年6月15日发(作者:)

整数是编程中常用的一种数据,C语言中有三种整数类型,分别

为 short、int 和 long。int 称为整型,short 称为短整型,long 称

为长整型,它们的长度(所占字节数)关系为:

short <= int <= long

它们具体占用几个字节C语言并没有规定,C语言只做了宽泛的

限制:

short 至少占用2个字节。

int 建议为一个机器字长。32位环境下机器字长为4字节,64

位环境下机器字长为8字节。

short 的长度不能大于 int,long 的长度不能小于 int。

这就意味着,short 并不一定真的”短“,long 也并不一定真的”

长“,它们有可能和 int 占用相同的字节数。决定整数长度的因素很

多,包括硬件(CPU和数据总线)、操作系统、编译器等。

在16位环境下,short 为2个字节,int 为2个字节,long 为

4个字节。16位环境多用于单片机和低级嵌入式系统,在PC和服务器

上基本都看不到了。

对于32位的 Windows、Linux 和 OS X,short 为2个字节,int

为4个字节,long 也为4个字节。PC和服务器上的32位系统占有率

也在慢慢下降,嵌入式系统使用32位越来越多。

在64位环境下,不同的操作系统会有不同的结果,如下所示(长

度以字节计):

操作系统

short

int

long

Win64

16

32

32

类Unix系统(包括 Unix、Linux、OS X、BSD、Solaris 等)

16

32

64

目前我们使用较多的PC系统为 Win XP、Win 7、Win 8、Win 10、

Mac OS X、Linux,short 和 int 的长度都是固定的,大家可以放心

使用,long 的长度在 Win64 和类Unix系统下会有所不同,使用时要

注意移植性。

获取某个数据类型的长度可以使用 sizeof 操作符,如下所示:

#include

int main()

{

short a=10;

int b=100;

long c=1000;