int 默认占一个机器字长由什么决定吗

总结一下哈:针对大部分32位机器來说所占内存是: char 字符型 1个;int整型2 个;short 2 个;但是不同的机器,和不同的编译软件下都会不同。所以你可以用sizeof()函数测试一下例sizeof(char);

这里补充下我的答案,之前回答这个问题时候自己还是一名单片机开发爱好者,C51单片机中的int确实是16位两个字节。

而现在的我从事應用软件开发在这些编译器中(比如vs、gcc),int一般都是4位的(无论32位还是64位)事实上,一个比较官方的解释是:编译器可以根据自身硬件来选择合适的大小但是需要满足约束:short和int型至少为16位,long型至少为32位并且short型长度不能超过int型,而int型不能超过long型这即是说各个类型的變量长度是由编译器来决定的。


推荐于 · TA获得超过7858个赞

通常char占1个字节short占2个字节。原因是1个字节可以表示一个ASCII码,为了提高计算机的数據处理能力short用一个字节远远不足,但限于早年的存储器体积和价格用2个字节也是不得以的事情。现在存储器的体积不再是考虑的因素,价格也不是“事”CPU的数据寄存器已经是64位(8个字节),32位的CPU已近末日黄昏所以short用8个字节表示不再是梦。所谓64位的CPU指的就是其数据寄存器(包括指令寄存器)的宽度是64bits,一次读取、存储64bits最为快捷这就是int类型数据的标准宽度。

本回答被提问者和网友采纳

由编译器决定的编譯器会根据系统平台自己改变数据类型的取值范围。

理论像楼上说的这样实际上int型变量要看机器32位和64位机器是不同的,你可以用

char*(即指針变量): 4个字节(32位的寻址空间是2^32, 即32个bit也就是4个字节。同理64位编译器)

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手機镜头里或许有别人想知道的答案。

C++标准规定int占一个机器字长由什麼决定。在32位系统中int占32位也就是4个字节,

而在老式的16位系统中int占16位,即2个字节

而C++标准中只限制规定short int不能超过int的长度,具体长度的可鉯由C++编译器的实现厂商自行决定目前流行的32位C++编译器中,

应该和CPU构架和编译系统有关吧呵呵。
这个问题我也很模糊!!!

我的32位机器VC++结果是

峩总结应该是和编译系统有关编译系统根据机器定义。

我要回帖

更多关于 机器字长由什么决定 的文章

 

随机推荐