数据类型的一点疑问

来源:百度知道 编辑:UC知道 时间:2024/05/24 18:57:08
int、long和short最小存储空间分别为:16位、32位、16位。
它们长分别为:一个机器字长,一个或两个机器字长,半个机器字长。
(一个机器字长为32位)
疑问:
按照我的理解是int是半个机器字长,long是一个机器字长,short是一个机器字长。
请问:机器字长的位与存储空间的位的关系?或不同?
为什么我理解的与正确答案不同?
请不要复制,您的理解才是最完美的答案,谢谢!

书上写的很明白了,C语言没有具体规定以上各类型数据所占内存的字节数,

原则是long型的不短于int,short不长于int型。

你的理解是不是写错了,short应该是半个,要是半个的话你的理解是对的,Turbo C++中就是这样的。
而有的C语言中short分配16位,int 和long都是32位,但int 最大只到2的15次方-1,long却到正负21亿,所以一般就不用给long分配64个字节,所以,通常是long 32位 ,short 16位 ,int 32或 16位
你自己不也说了吗,int、long和short最小存储空间分别为:16位、32位、16位。但没规定最大存储空间呀,不能学死,只要在原则允许的范围内就行了