std:: endian
From cppreference.net
C++
Utilities library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bit manipulation
|
(C++20)
|
||||
|
(C++23)
|
||||
| Integral powers of 2 | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Rotating | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Counting | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Endian | ||||
|
endian
(C++20)
|
|
定义于头文件
<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 };
注释
| 功能测试 宏 | 值 | 标准 | 功能 |
|---|---|---|---|
__cpp_lib_endian
|
201907L
|
(C++20) | std :: endian |
示例
运行此代码
可能的输出:
mixed-endian
参阅
|
(C++23)
|
反转给定整数值中的字节顺序
(函数模板) |
|
C 文档
for
endian
|
|