在最新发布的boost中,定义了4个endian宏:
* `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
宏之间的区别。
最佳答案
Word-swapped endiannes 指的是(现在史前的)硬件,它可以被认为是中间端:一个字的两半会被交换,但半字中的字节顺序不会. PDP-11 可能是最著名的架构。
boost 支持这种 endiannes 的原因尚不清楚,老实说,因为我很确定 boost 在那些史前架构上通常得不到很好的支持。例如,C++ 标准使用 little 和 big 选项:https://en.cppreference.com/w/cpp/types/endian
查看更多关于中间字节序的信息:https://en.wikipedia.org/wiki/Endianness#Middle-endian
关于c++ - `BOOST_ENDIAN_BIG_BYTE` 和 `BOOST_ENDIAN_BIG_WORD` 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53936546/