基于字节顺序进行有条理的编译

时间:2015-03-30 15:12:43

标签: haskell ghc cabal endianness

我正在从字节数组中读取Word,并且需要使我的代码的部分字节序感知。 GHC是否暴露了任何可以用于使代码以处理器字节顺序为条件的代码(如MachDeps.h)?如果没有,我可以从HOST_ARCHghcplatform.h可以在.cabal文件中使用arch()条件可靠地推断出字节顺序吗?还是其他想法?

1 个答案:

答案 0 :(得分:7)

你在寻找这样的东西: https://hackage.haskell.org/package/cpu-0.1.0/docs/System-Endian.html

如果您不想/不能使用这些软件包,查看上面的源代码,您可以看到如何使用(几乎)任何低级编程语言(如C或类似语言)检查任何平台上的字节顺序。填充堆栈的一部分(对于具有4位的机器:例如1000),然后读回所述堆栈的LSB或MSB。 Endianness将决定它的存储方式(您将回读1000或0001)。