标签:
两种方式:1、通过指针
2、通过联合体,联合体里面的数据都是按顺序存储的,而且不论联合体里面有多少数据类型,联合体长度是最长的数据类型的长度。不论初始化多少联合体里面的数据,有效的是最后一个初始化数据,因为联合体里面的各种数据类型共用相同的地址,都从相同的地址开始存放。
1 1 #include<stdio.h> 2 2 union Data{ 3 3 char ch; 4 4 short data; 5 5 }; 6 6 union Data u_Data; 7 7 //judege cpu little_endian or big_endian 8 8 int main() 9 9 { 10 10 char *p; 11 11 char i=1; 12 12 p=&i; 13 13 u_Data.data=0x0102; 14 14 if(*p) 15 15 { 16 16 printf("cpu is little endian\n"); 17 17 } 18 18 else printf("cpu is big endian\n"); 19 19 if(sizeof(short)==2) 20 20 { 21 21 if(u_Data.ch==0x02) 22 22 { 23 23 printf("cpu is little endian\n"); 24 24 } 25 25 else if(u_Data.ch==0x01) 26 26 { 27 27 printf("cpu is big endian\n"); 28 28 } 29 29 } 30 30 return 0; 31 31 }
输出结果:
标签:
原文地址:http://www.cnblogs.com/qiuheng/p/5793051.html