位操作
位操作函数
端序
端序是构成多字节对象的字节的顺序。更多相关内容请参考 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