std::endian
来自cppreference.com
在标头 <bit> 定义
|
||
enum class endian { |
(C++20 起) | |
指示所有标量类型的端序:
- 若所有标量类型均为小端,则
std::endian::native
等于std::endian::little
- 若所有标量类型均为大端,则
std::endian::native
等于std::endian::big
亦支持极端情况:
- 若对所有标量类型进行 sizeof 运算都等于 1,则端序没有意义,且
std::endian::little
,std::endian::big
及std::endian::native
三个值相同 - 若平台使用混合端序,则
std::endian::native
既不等于std::endian::big
亦不等于std::endian::little
可能的实现
enum class endian { #ifdef _WIN32 little = 0, big = 1, native = little #else little = __ORDER_LITTLE_ENDIAN__, big = __ORDER_BIG_ENDIAN__, native = __BYTE_ORDER__ #endif };
示例
运行此代码
可能的输出:
little-endian
参阅
(C++23) |
反转给定整数值中的字节 (函数模板) |