我们需要支持3个硬件平台 - Windows(小端)和Linux嵌入式(大小端)。我们的数据流取决于它使用的机器,数据需要分解成位域。Big Endian和Little Endian支持字节排序
我想写一个宏(如果可能)来抽象出细节。在Linux上,我可以使用bswap_16
/bswap_32
/bswap_64
进行Little Endian转换。
但是,我无法在我的Visual C++包含中找到它。
是否有两种平台(Windows和Linux)的通用内置?
如果不是,那么我可以在Visual C++中使用什么来进行字节交换(除了自己编写它 - 希望一些机器优化的内置)?
谢谢。
这些功能对于理解网络(即互联网)的任何操作系统都是相对通用的。一些最现代的操作系统。 –
请注意,他们使用'union'的示例实现不能保证能够正常工作。 –
是的,你是对的工会应该打包。感谢您指出了这一点。请参阅我的答案更新。 @SimonRichter – alk