c++ - `BOOST_ENDIAN_BIG_BYTE` 和 `BOOST_ENDIAN_BIG_WORD` 有什么区别?

标签 c++ boost

在最新发布的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++ 标准使用 littlebig 选项: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/

相关文章:

c++ - 更好的#define print std::cout<<boost::format

c++ - 从引用猜测类型

c++ - Boost 库已成为 C++ 标准

c++ - 编译错误 : cast void * failed in C/C++

c++ - 当我定义一个子类只是为了抽象出基类构造函数的细节时,它叫什么?

c++ - 如何在 c/c++ 中修复此 "First-chance exception"?

c++ - OpenCV VideoCapture 仅在第一次调用 glutDisplayFunc 回调时返回空帧

c++ - 在 boost python 中使用自定义智能指针

c++ - boost 反序列化错误

c++ - 如何修复 C++ 错误 : expected unqualified-id