- 主题:现在写程序是不是可以不再考虑大端计算机的存在了?
不是这个问题。
我看 linux 内核在设计各种协议的时候都直接用小端了。
以后我们写程序序列化反序列化数据的时候,就直接把当前机器当成小端。不写转换代码。
【 在 kingkang 的大作中提到: 】
: 现在的编译器会自动识别大小端的,程序几乎不用特别处理
--
FROM 27.152.53.*
我打算未来出机器边界的时候也直接传小端。
除了旧的网络协议那一票,仍然得兼容,不然以后都直接用小端。不管大端了。
【 在 z16166 的大作中提到: 】
: 你说的是没出单个机器的边界的情况。
: 边界之内看硬件,边界之外看协议
: 一、数据没出单个系统的,用LE还是BE取决于cpu。
: ...................
--
FROM 27.152.53.*
应该没任何问题,只要你的app涉及到的cpu没BE的,或者BE的那些机器是弱势的。
【 在 hgoldfish 的大作中提到: 】
: 我打算未来出机器边界的时候也直接传小端。
: 除了旧的网络协议那一票,仍然得兼容,不然以后都直接用小端。不管大端了。
:
--
FROM 123.115.128.*
就像我上面说的,现在哪来的 BE 机器啊。
如果有也都是非常古老的跑了几十年谁都不敢动的那种。
【 在 z16166 的大作中提到: 】
: 应该没任何问题,只要你的app涉及到的cpu没BE的,或者BE的那些机器是弱势的。
--
FROM 27.152.53.*
这些大端CPU对于的GCC直接用来编译标准的linux kernel和正常运行,没有问题的
【 在 hgoldfish 的大作中提到: 】
: 不是这个问题。
: 我看 linux 内核在设计各种协议的时候都直接用小端了。
: 以后我们写程序序列化反序列化数据的时候,就直接把当前机器当成小端。不写转换代码。
: ...................
--
FROM 115.44.114.*
所以可以结帖了
【 在 hgoldfish 的大作中提到: 】
: 就像我上面说的,现在哪来的 BE 机器啊。
: 如果有也都是非常古老的跑了几十年谁都不敢动的那种。
:
--
FROM 123.115.128.*
可以不用
【 在 iwannabe 的大作中提到: 】
: ntohs/htons
: 不是一直在用吗,socket编程
:
: 【 在 hgoldfish 的大作中提到: 】
: : 直接认定程序运行在小端上面,而不再考虑大端计算机的存在?
: : 读写大端数据的时候,弄个工具函数进行转化。
--发自 ismth(丝滑版)
--
FROM 114.246.103.*
我也是, 为此12年前还与一个同事吵了一架,丫非要脱裤子放屁, 关键是两端都是Intel 的cpu
【 在 hgoldfish 的大作中提到: 】
: 支持啊。我现在搞自定义的网络协议也用小端。
:
: 大端派太异端了!
:
: 【 在 buildtolast 的大作中提到: 】
: : linus不久前呼吁,网络传输也采用little endian。
--发自 ismth(丝滑版)
--
FROM 114.246.103.*
这种选择不存在对错
也不会有啥普通应用对性能的要求会达到了要仔细抠“BE <-> LE”的地步。
所以最好的方式是看谁地位高、嗓门大,不行就找地位更高的人仲裁,或者锤子剪刀布解决
【 在 zylthinking2 的大作中提到: 】
: 我也是, 为此12年前还与一个同事吵了一架,丫非要脱裤子放屁, 关键是两端都是Intel 的cpu
:
--
修改:z16166 FROM 123.115.128.*
FROM 123.115.128.*
JAVA是大端。如果写一个C,JAVA互联的应用。。。。
【 在 hgoldfish 的大作中提到: 】
: 直接认定程序运行在小端上面,而不再考虑大端计算机的存在?
: 读写大端数据的时候,弄个工具函数进行转化。
: 读写小端数据的时候,直接拿内存里面的写入?
--
FROM 221.221.50.*