BOOST_ENDIAN_BIG_BYTE和BOOST_ENDIAN_BIG_WORD有什么区别?

时间:2018-12-26 19:58:28

标签: c++ boost

在最新版本的boost中,定义了4个字节序宏:

* `BOOST_ENDIAN_BIG_BYTE`, byte-swapped big-endian.
* `BOOST_ENDIAN_BIG_WORD`, word-swapped big-endian.
* `BOOST_ENDIAN_LITTLE_BYTE`, byte-swapped little-endian.
* `BOOST_ENDIAN_LITTLE_WORD`, word-swapped little-endian.

https://www.boost.org/doc/libs/1_69_0/boost/predef/other/endian.h

我不清楚_BYTE_WORD宏之间的区别。

1 个答案:

答案 0 :(得分:4)

单词交换字节序是指(现在是史前的)硬件,可以将其视为中间字节序:一个单词的两半将被交换,但半字中的字节顺序将不被交换。 。 PDP-11可能是拥有此功能的最著名的体系结构。

说实话,提升支持该字节序的原因尚不清楚,因为我敢肯定,在那些史前体系结构上通常不能很好地支持提升。例如,C ++标准使用了 little big 选项:https://en.cppreference.com/w/cpp/types/endian

有关中间字节序的更多信息:https://en.wikipedia.org/wiki/Endianness#Middle-endian