我正在从字节数组中读取Word
,并且需要使我的代码的部分字节序感知。 GHC是否暴露了任何可以用于使代码以处理器字节顺序为条件的代码(如MachDeps.h
)?如果没有,我可以从HOST_ARCH
(ghcplatform.h
可以在.cabal文件中使用arch()
条件可靠地推断出字节顺序吗?还是其他想法?
答案 0 :(得分:7)
你在寻找这样的东西: https://hackage.haskell.org/package/cpu-0.1.0/docs/System-Endian.html
如果您不想/不能使用这些软件包,查看上面的源代码,您可以看到如何使用(几乎)任何低级编程语言(如C或类似语言)检查任何平台上的字节顺序。填充堆栈的一部分(对于具有4位的机器:例如1000),然后读回所述堆栈的LSB或MSB。 Endianness将决定它的存储方式(您将回读1000或0001)。