`BOOST_ENDIAN_BIG_BYTE` 和 `BOOST_ENDIAN_BIG_WORD` 有什么区别?

thc*_*thc 1 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.
Run Code Online (Sandbox Code Playgroud)

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

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

Ser*_*eyA 5

字交换字节序是指(现在是史前的)硬件,它可以被认为是中间字节序:一个字的两半会被交换,但半字中的字节顺序不会。PDP-11 可能是最著名的架构。

老实说,boost 支持这种字节序的原因尚不清楚,因为我很确定 boost 通常在那些史前架构上得不到很好的支持。例如,C++ 标准可以做大的选择:https : //en.cppreference.com/w/cpp/types/endian

查看有关中间端的更多信息:https : //en.wikipedia.org/wiki/Endianness#Middle-endian