本帖最后由 jackz007 于 2019-12-4 10:59 编辑
我想,你希望看到的应该是这个:#include <stdio.h>
int main()
{
union {
char c[2] = {0x12 , 0x34} ;
int x ;
} d ;
int i = 0x1234 ;
char * m = (char *) & i ;
if(d . x == 0x1234) printf("\tBig Endian machine.\n") ;
else printf("\tLittle Endian machine.\n") ;
printf("\t%04x\n" , d . x) ;
printf("\t%02x\n", * m) ;
printf("\t%02x\n", * (m + 1)) ;
return 0 ;
}
编译运行实况:C:\Bin>g++ -static -o x x.c
C:\Bin>x
Little Endian machine.
3412
34
12
C:\Bin>
把一个数显示成字符 ("%c") 那自然是什么也看不出来,但是,如果显示成十六进制数那就完全不同了。 |