long与int的区别?

pp25210 2011-01-16 11:03:17
在windows系统下C语言中long和int都占4个byte其可以表示的数值的大小相同,为什么还要定义long和int两种数据类型?
...全文
50019 44 打赏 收藏 转发到动态 举报
写回复
用AI写文章
44 条回复
切换为时间正序
请发表友善的回复…
发表回复
suixinpiaodang 2013-10-02
  • 打赏
  • 举报
回复
学习了。。。
weiqiyun1986 2013-07-02
  • 打赏
  • 举报
回复
引用 22 楼 yucuihaimeng 的回复:
[Quote=引用 3 楼 bluejays 的回复:] 16位系统:long是4字节,int是2字节 32位系统:long是4字节,int是4字节 64位系统:long是8字节,int是4字节 [/Quote] +1
long和int在X64下都是4字节,指针类型和size_t才是8字节 (这些都是经过实际调试的数据)
liuhuiyi 2012-11-06
  • 打赏
  • 举报
回复
40楼不错,鄙视二楼
asd32 2012-10-07
  • 打赏
  • 举报
回复
基本类型 long精度最高
Localsnake 2012-10-07
  • 打赏
  • 举报
回复
如果您要处理的整数超出了 int 所能表示的范围,并且您的编译器中,long 的表示范围比 int 大,那就使用 long。不过,若非必要,尽量不要用 long,因为它可能会降低程序运行效率。有一点要注意:如果您的编译器中,long 和 int 都是 32 位的,并且您需要使用 32 位整数,那么应该用 long,而不要用 int。只有这样,我们的程序才可以安全地移植到 16 位的计算机,因为 16 位的计算机中,int 一般也是 16 位的。类似地,如果您需要使用 64 位整数,那就用 long long。如果 int 是 32 位的话,那么使用 short 可以节省空间,不过您得确保您要处理的整数不会超出 short 的表示范围。这种“节省”对内存大的计算机来说,是没什么意义的。
xxxx--- 2012-09-21
  • 打赏
  • 举报
回复
受教了,顺便鄙视一下二楼
ybh1998 2012-08-25
  • 打赏
  • 举报
回复
我突然发现一个更有趣的现象,windows中,...long limit;...rand()*limit/RAND_MAX; 可用,而在linux中就不行了!!!
ybh1998 2012-08-25
  • 打赏
  • 举报
回复
我想要是谁家里有条件(装64位系统),就试一下,我是32位ubuntu,gcc编译器,测试表明long最大2147483647,最小-2147483648。
秋兔子 2012-08-08
  • 打赏
  • 举报
回复
我是来永远鄙视二楼的
yangang1899 2012-05-08
  • 打赏
  • 举报
回复
3楼和11楼弄的我好晕啊,到底在64位系统下,long是几个字节的
BeilyLan 2012-04-19
  • 打赏
  • 举报
回复
我也是来鄙视二楼的
csdaa2010 2011-12-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bluejays 的回复:]

16位系统:long是4字节,int是2字节
32位系统:long是4字节,int是4字节
64位系统:long是8字节,int是4字节
[/Quote]

请教一下

为什么 在不同的系统中需要区分类型的长度?
这有什么好处呢?
zhu_s_j 2011-11-25
  • 打赏
  • 举报
回复
就32位平台是
  • 打赏
  • 举报
回复
那么如果在同一个平台,long与int表示的是否就相同?各位楼主
yanjiee 2011-11-14
  • 打赏
  • 举报
回复
我是来鄙视二楼的。
fangyan198707 2011-09-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wizard_tiger 的回复:]
《C和指针》中写过:
long与int:标准只规定long不小于int的长度,int不小于short的长度。(我记的好像是这样)
[/Quote]
特意拿出《C和指针》求证,有这句话!
sd666850 2011-01-17
  • 打赏
  • 举报
回复
平台不一样
abc3240666 2011-01-17
  • 打赏
  • 举报
回复
精度问题
逆乾坤 2011-01-17
  • 打赏
  • 举报
回复
你在windowsX86下long和int都是4位没问题,但要考虑可移植性啊,多看看书吧。(我为菜鸟,共同进步)
yucuihaimeng 2011-01-17
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bluejays 的回复:]

16位系统:long是4字节,int是2字节
32位系统:long是4字节,int是4字节
64位系统:long是8字节,int是4字节
[/Quote]

+1
加载更多回复(23)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧