查看: 7374|回复: 3
收起左侧

[已解决] vc++6.0对于int和long int的数据长度一样,为什么要分开定义

 关闭 [复制链接]
abc45628
发表于 2012-11-28 11:17:54 来自手机 | 显示全部楼层 |阅读模式
本帖最后由 abc45628 于 2013-2-28 23:25 编辑

如题,如果发错版面请班主代为修改
qazxsw21
发表于 2012-11-28 11:39:06 | 显示全部楼层
本帖最后由 qazxsw21 于 2012-11-28 11:50 编辑

不同平台, int 和long int 长度可能不一样,x86系列CPU采用little endian方式存储数据,简单的说就是数据的高字节在低地址,低字节在高地址。  32位系统你可能看不出来差别,因为int 和long int都在内存中占4个字节,但是早期的16位和64位系统就不同了:16位,int占2个字节,long int占4个字节。64位,int占4个字节,long int占8个字节。16和64位取值、取址就不一样了。输出时,建议使用 %hd和%ld,不要都使用%d。

评分

参与人数 1经验 +4 收起 理由
woxihuan2011 + 4 感谢解答: )

查看全部评分

yloko
发表于 2012-11-28 13:15:23 | 显示全部楼层
不清楚,,

瞎猜的:也许是分开定议,可以减少消耗运算...我是这么理解的,,不只是VC,,很多都有分开定议的类似的功能,,


我的理解是:可以减少消耗运算,使程序更加精炼,,,,
thelord
发表于 2012-11-29 01:08:44 | 显示全部楼层
long从字面上看,应该是64位才更合理,把long当成32位是一个历史的包袱。像C#那样新起炉灶的程序语言,由于没有需要支持老代码的问题,就把long当作64位来处理了
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-5-18 11:24 , Processed in 0.121799 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表