【发布时间】:2018-11-04 18:31:56
【问题描述】:
我希望我的程序默认使用大端(现在它很小)。 这意味着,每次我声明一个 uint_32/int 时,转换为它的值都将处于大端顺序。 那可能吗? (无需每次都调用 ntohl())。
我在 google 和 s.o 上研究了 3 天,但没有任何答案 我将非常感谢任何帮助!
编辑: 我有服务器和客户端。 客户端使用大端,服务端使用小端。 现在,我将字节数组的 md5 值发送到服务器,在服务器上对其进行 ntohl() 处理并获取有效的 md5 值。
在服务器中,当我调用 md5.c 函数(顺便说一下,它是 dll)时,我得到了不同的值。 这个值在任何方面都与接收值不同。 我认为它的发生是因为字节序。 我发送给函数的字节数组没有改变,因为它们是单个字节,这不会影响字节顺序,但是我在函数上声明的变量,以及我操纵字节 arr 的变量,可能会产生问题。
这就是大端对我如此重要的原因。
【问题讨论】:
-
请解释为什么大端序对您如此重要。所以edit你的问题来改进它
-
为什么不能使用
ntohl?为什么你认为字节顺序是问题?你没有检查这个来确认吗?
标签: c endianness