版本声明:本文转载于公众号TeachPlus
c语言面试题----联合体、共用体、大小端
编写程序,测试本机大小端:
本题解析
# include <stdlib.h>
# include <stdio.h>
int main( int argc, char **argv)
{
union {
short s;
char c[ sizeof( short)];
} un;
un.s = 0x0102;
if( sizeof( short)==2) {
if(un.c[0]==1 && un.c[1] == 2)
printf("big-endian\n");
else if (un.c[0] == 2 && un.c[1] == 1)
printf("little-endian\n");
else
printf("unknown\n");
}
else
printf("sizeof(short)= %d\n", sizeof( short));
exit(0);
}
首先来看一下联合体和大小端的定义