__STDC_ENDIAN_NATIVE__宏
概要:
#include <stdbit.h> #define __STDC_ENDIAN_NATIVE__ value //value值由实现定义。
描述:
多字节标量类型中常见的两种字节排序方法是小端序(little-endian)和大端序(big-endian)。
小端序中最低有效字节(the least significant byte)放在最前面,其余字节按升序排列;即最低有效字节存储在最小的内存地址中,以0x12345678为例:
| 有效字节(由高到低) | 12 | 34 | 56 | 78 |
| 内存地址(由小到大) | 78 | 56 | 34 | 12 |
大端序中最高有效字节(the most significant byte)放在最前面,其余字节按降序排列;即最高有效字节存储在最小的内存地址中,以0x12345678为例:
| 有效字节(由高到低) | 12 | 34 | 56 | 78 |
| 内存地址(由小到大) | 12 | 34 | 56 | 78 |
实现中还可能存在其它字节排序方式。
宏__STDC_ENDIAN_NATIVE__是整数常量表达式,表示执行环境的字节序存储方法。宏__STDC_ENDIAN_NATIVE__描述了执行环境对于位精确整数类型、标准整数类型以及无填充位的扩展整数类型的字节序。
如果执行环境是小端序,宏__STDC_ENDIAN_NATIVE__等于宏__STDC_ENDIAN_LITTLE__。如果执行环境是大端序,宏__STDC_ENDIAN_NATIVE__等于宏__STDC_ENDIAN_BIG__。如果执行环境既不是小端序,也不是大端序,而是实现定义的其它字节序,宏__STDC_ENDIAN_NATIVE__既不等于宏__STDC_ENDIAN_LITTLE__,也不等于宏__STDC_ENDIAN_BIG__。
范例:
|
|
结果:
(注:编译时实现未支持<stdbit.h>头文件。)
相关内容:
| __STDC_ENDIAN_LITTLE__ | 表示小端序的宏。 |
| __STDC_ENDIAN_BIG__ | 表示大端序的宏。 |
主要参考资料: