| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4486 人关注过本帖
标题:数据类型占据的空间大小
取消只看楼主 加入收藏
gleerat
Rank: 2
等 级:论坛游民
帖 子:39
专家分:20
注 册:2009-12-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
数据类型占据的空间大小
在《C Primer Plus(第五版)》(中文版)第35页上提到,字(word)在早期的8位apple机器上占据8位空间,在16位80286机器上占据16位,在32位PC机器上占据32位空间。更强的计算机甚至会出现64位的字。
在40页上提到,一般情况是long long类型为64位,long类型为32位,short类型为16位,int类型依照机器的自然字为16位或32位。

是不是可以这样理解,在32位系统上int类型一般为32位?
如果上述看法成立的话,那么在64位的系统上int的类型就应该为64位?毕竟CPU很早就进入64位时代了,而64位系统也已经很常见了。这样,long类型数据空间就必须随之增加到64位,long long类型也必须改变为128位?就是说专门为64位编写的程序就必须考虑到这个问题?还是说专为64位编写的程序也同样使用与32位程序同样大小的数据空间?

谢谢。
搜索更多相关主题的帖子: 空间 计算机 apple 中文版 
2011-12-03 19:03
gleerat
Rank: 2
等 级:论坛游民
帖 子:39
专家分:20
注 册:2009-12-23
收藏
得分:0 
回复 3楼 非死亡!
由于现在的CPU并不是纯粹的64位,它同时也向下兼容32位操作系统的,所以我在原文中并没有说机器的硬件决定数据空间的大小,我说的是系统是64位还是32位。
64位硬件上安装32位系统,编译器当然是32位的了;安装64位系统(如果不考虑额外的32位支持的话),原则上软件也都是64位的,此时编译器当然默认为指64位的编译器。

按照你的说法,32位编程和64位编程,在数据空间上分别并不显著,只有long类型和unsigned类型的数据空间不一样。对吧?


[ 本帖最后由 gleerat 于 2011-12-4 11:47 编辑 ]

明察、慎思、笃行
2011-12-04 11:35
gleerat
Rank: 2
等 级:论坛游民
帖 子:39
专家分:20
注 册:2009-12-23
收藏
得分:0 
回复 2楼 林梦
早期的16位机器的系统上和现在64位机器的32/64位系统上,自然字word占据空间不一样,而且一般自然字word的数据空间是跟随机器/操作系统而变的;而int类型是16位还是32位是取决于机器(操作系统)的自然字word而定的。
所以才有这样一个想法的。

明察、慎思、笃行
2011-12-04 11:43
快速回复:数据类型占据的空间大小
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016952 second(s), 10 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved