根据计算机系统、编译系统的不同,32位有符号整数的定义会略有差异,通常的做法是把长整型(long)数据定义为32位,int型可以是16位,也可以是32位。C语言中没有具体规定各类数据所占的字节数,只要求long型数据长度不短于int型,short型不长于int型。
具体如何实现,由各计算机系统自行决定。例如在Turbo C++中,int型和short型数据都是16位的,而long型数据是32位的。而Visual c++6.0的int型数据或是long型数据都是32位的,其short型数据分配的是16位。