一个简单的判断主机字节序的C程序

#include


union{
	short s;
	char c[sizeof(short)];
}un;

int main(int argc,char **argv)
{
	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);
	}

	exit(0);
	
}

/*
Ubuntu上的运行结果
	little-endian
*/

你可能感兴趣的:(c++demo)