std::endian
来自 cppreference.cn
定义于头文件 <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 { #if defined(_MSC_VER) && !defined(__clang__) little = 0, big = 1, native = little #else little = __ORDER_LITTLE_ENDIAN__, big = __ORDER_BIG_ENDIAN__, native = __BYTE_ORDER__ #endif };
[编辑] 注释
特性测试 宏 | 值 | Std | 特性 |
---|---|---|---|
__cpp_lib_endian |
201907L |
(C++20) | std::endian |
[编辑] 示例
运行此代码
可能的输出
mixed-endian
[编辑] 参见
(C++23) |
反转给定整数值中的字节 (函数模板) |
C 文档 关于 endian
|