c语言写一个大小端检测的函数
时间: 2024-10-16 22:07:53 浏览: 34
C语言-文件读写操作教程全解-C中主要读写函数的解析+案例
在C语言中,为了检测系统是大端字节序(Big Endian)还是小端字节序(Little Endian),可以编写一个简单的函数。这里是一个示例:
```c
#include <stdio.h>
#include <endian.h>
// 检测字节顺序的函数
int detectByteOrder(void) {
union {
uint32_t i;
char c[4];
} endian_test;
// 将数值0x01020304存储到union中
endian_test.i = 0x01020304;
// 如果内存地址的第一个字节是0x01,则为小端字节序
if (endian_test.c[0] == 0x01) {
return LITTLE_ENDIAN;
}
// 否则为大端字节序
else {
return BIG_ENDIAN;
}
}
int main() {
int byte_order = detectByteOrder();
printf("System is %s endian.\n", byte_order == LITTLE_ENDIAN ? "little" : "big");
return 0;
}
阅读全文