int的字节长度是由CPU和操作系统编译器共同决定的, 一般情况下,主要是由操作系统决定,比如,你在64位AMD的机器上安装的是32位操作系统,那么,int默认是32位的;如果是64位操作系统,64位 操作系统分为两种,1种是int为32位long为64位,2种int long均为64位。之所以说int同时也与编译器有关,编译器完全可以在32位系统模拟64位整数,例如Unix/Linux下的long long和Windows下的__int64均为64位整数。
16位机器是2个字节,32位机器下面是4个字节
这个操作系统的位数有关,一个int的大小是操作系统的一个字长,TC是16位系统程序,所以int是16bit业就是两个字节 ,在32位linux和32位Windows下,都是4个字节,也就是目前最常用的VC和gcc结果。
---------------------------------
gcc中的int和long类型长度都为4字节
(1)int类型的长度有什么决定??
……准确的字节数依赖于机器和编译器……
现阶段32bit(即4字节)PC一般在绝大多数编译器下是32bit,当然也有的编译器是16bit(比如turbo C)。最关键一点,只能小,不能大,这是因为即使编译器把它当作大于32bit了,但因为CPU字长只有32bit,所以也只能处理32bit的数。
同时需要注意的就是 在c标准中只是对不同的数据类型的数字范围设置了下界,但是没有上界。
/*********************摘自网友*****************/
所以当移植代码的时候,硬件平台改变后自己就要考虑该数据的正常表示范围是否减少,这样会在运行中出现错误,然而typedef的出现将类型重命名后