Linux 系统字节序判断
说明:本函数摘自图书《Linux高性能服务器编程》
- 字节序分为大端字节序(big endian)和小端字节序(little endian)
- 大端字节序:一个整数的高位字节(23-31bit)存储在内存的低地址处,低位字节(0-7bit)存储在内存的高地址处。
- 小端字节序:一个整数的高位字节(23-31bit)存储在内存的高地址处,低位字节(0-7bit)存储在内存的低地址处。
#include<stdio.h>
void byteorde()
{
union
{
short value;
char union_bytes[sizeof(short)];
}test;
test.value = 0x0102;
if((test.union_bytes[0]==1)&&(test.union_bytes[1]==2))
{
printf("big endian\n");
}
else if((test.union_bytes[0]==2)&&(test.union_bytes[1]==1))
{
printf("little endian\n");
}
else
{
printf("unkown...\n");
}
}