写了个demo
main.cpp如下:
#include <stdio.h>
int main()
{
union{
int n;
char szn[sizeof(int)];
}un;
un.n = 0x01020304;
if ( sizeof(int) == 4 )
{
if ( un.szn[0] == 0x01 && un.szn[1] == 0x02 )
printf("big\n");
else if ( un.szn[0] == 0x04 && un.szn[1] == 0x03 )
printf("little\n");
}
printf("sizeof(int) = %d\n", sizeof(int));
return 0;
}
MakeFile如下
objects = main.o
nsEnd: $(objects)
g++ $(LDFLAGS) $(LIBS) -o nsEnd $(objects)
main.o : main.cpp
g++ $(INCLUDES) -g -c main.cpp
clean :¡¡
rm nsEnd $(objects)
- make
- ./nsEnd
在本机测试结果为:
little
sizeof(int) = 4
PS:大端vs小端
大端:高字节存储在低地址,低字节存储在高地址,即按阅读顺序
小端:高字节存储在高地址,低自己存储在低地址