猿问

在C+程序中以编程方式检测endianness

在C+程序中以编程方式检测endianness

是否有可编程的方法来检测您是在大端架构还是小端架构上?我需要能够编写在Intel或PPC系统上执行的代码,并使用完全相同的代码(即不附带条件的编译)。



芜湖不芜
浏览 416回答 3
3回答

元芳怎么了

您可以通过设置int和屏蔽位来做到这一点,但最简单的方法可能是只使用内置的网络字节转换操作(因为网络字节顺序总是很大的字节)。if ( htonl(47) == 47 ) {   // Big endian} else {   // Little endian.}比特篡改可以更快,但这种方式是简单的,直截了当的,非常不可能搞砸。

BIG阳

下面是一些确定计算机类型的代码int num = 1;if(*(char *)&num == 1){     printf("\nLittle-Endian\n");}else{     printf("Big-Endian\n");}
随时随地看视频慕课网APP
我要回答