#include"stdio.h"
#include"string.h"
typedef unsigned char BYTE;
//当多个类型多个对象多个事物只取其一时
//假设网络节点A和B中通信协议涉及四类报文
//报文格式为报文类型字段+报文内容的结构体
//四个报文结构体类型为STRUCTTYPE1-4
//最简单的方式组织一个统一的报文数据结构
/*
typedef union tag_packet_content
{
STRUCTTYPE1 pkt1;
STRUCTTYPE2 pkt2;
STRUCTTYPE3 pkt3;
STRUCTTYPE4 pkt4;
}packet_content;
typedef struct tag_packet
{
BYTE pktType;
packet_content pktContent;
}packet;
*/
//小端存储返回1 大端存储返回0
int checkCPU()
{
union w
{
int a;
char b;
}c;
c.a = 1;
return (c.b == 1);
}
int main(int argc,char *argv[])
{
unsigned int num,*p;
p = #
num = 0;
*(BYTE *)p = 0xff;
if(num == 0xff)
{
printf("The endian of cpu is little\n");
}
else //num == 0xff000000
{
printf("The endian of cpu is big\n");
}
printf("checkCPU:%d\n",checkCPU());
return 0;
}
实验结果: