prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 20.9

我如何确定机器的字节顺序是大端还是小端?


常用的技术是使用指针

	int x = 1;
	if(*(char *)&x == 1)
		printf("little-endian\n");
	else	printf("big-endian\n");
或联合体
	union {
		int i;
		char c[sizeof(int)];
	} x;
	x.i = 1;
	if(x.c[0] == 1)
		printf("little-endian\n");
	else	printf("big-endian\n");

(请注意,除了简单的大端和小端字节序之外,还有其他字节序的可能性[脚注] 。)

另请参阅问题 10.1620.9b

参考文献:H&S 第 6.1.2 节,第 163-4 页


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管