std::endian
来自 zh.cppreference.net
| 定义于头文件 <bit>
|
||
enum class endian
{
little = /* implementation-defined */,
big = /* implementation-defined */,
native = /* implementation-defined */,
};
|
(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 };
注释
| 功能测试 宏 | 值 | 标准 | 功能 |
|---|---|---|---|
__cpp_lib_endian
|
201907L
|
(C++20) | std :: endian |
示例
运行此代码
可能的输出:
mixed-endian
参阅
|
(C++23)
|
反转给定整数值中的字节顺序
(函数模板) |
|
C 文档
for
endian
|
|