位操作
位操作函数
端序
端序是构成多字节对象的字节的顺序。更多相关内容请参考 Wikipedia。
在 <stdbit.h> 中定义了三个宏,用来表示标量类型的端序:
__STDC_ENDIAN_BIG____STDC_ENDIAN_LITTLE____STDC_ENDIAN_NATIVE__
- 如果标量类型为小端序,则
__STDC_ENDIAN_NATIVE__等于__STDC_ENDIAN_LITTLE__; - 如果标量类型为大端序,则
__STDC_ENDIAN_NATIVE__等于__STDC_ENDIAN_BIG__。 - 如果既不使用大端序,也不使用小端序,则
__STDC_ENDIAN_NATIVE__既不等于__STDC_ENDIAN_BIG__,也不等于__STDC_ENDIAN_LITTLE__。
示例:
c
#include <stdio.h>
#include <stdbit.h>
int main() {
if (__STDC_ENDIAN_NATIVE__ == __STDC_ENDIAN_BIG__) {
printf("大端序\n");
} else if (__STDC_ENDIAN_NATIVE__ == __STDC_ENDIAN_LITTLE__) {
printf("小端序\n");
} else {
printf("未知的端序\n");
}
return 0;
}1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13