《C Primer Plus》中的一个问题:为什么应使用long类型而不是int类型?

zaixiankaifa 2020-04-19 08:49:43
在<<C Primer Plus>> P48:“如果在long类型和int类型占用空间相同的机器上编写代码,当确实需要32位的整数时,应使用long类型而不是int类型,以便把程序移植到16位机后仍然可以正常工作。”

难道使用了int类型之后,程序移植到16位机后就不可以正常工作了?
...全文
262 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Vegdie 2020-04-20
  • 打赏
  • 举报
回复
为什么用32位,都64位了,long8字节,int4字节,
lin5161678 2020-04-20
  • 打赏
  • 举报
回复
引用 楼主 zaixiankaifa 的回复:
在<<C Primer Plus>> P48:“如果在long类型和int类型占用空间相同的机器上编写代码,当确实需要32位的整数时,应使用long类型而不是int类型,以便把程序移植到16位机后仍然可以正常工作。” 难道使用了int类型之后,程序移植到16位机后就不可以正常工作了?
对呀 16位机器的int不是32bit的
真相重于对错 2020-04-19
  • 打赏
  • 举报
回复
看这个链接 int 标准中 至少保证16位 而 long 至少保证32位
真相重于对错 2020-04-19
  • 打赏
  • 举报
回复
请试一下再这么说
arfi 2020-04-19
  • 打赏
  • 举报
回复
一般公司代码,都要封装数据类型int、long为其他的,比如uint32, uint64等

这样就不用了考虑整体替换了,最多在重定义的时候修改下uint32/uint64
arfi 2020-04-19
  • 打赏
  • 举报
回复
这已经不适用了,在当前64位机器上,long就是8字节,明确指定short才是2字节(16位)

69,336

社区成员

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

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