为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++
芜湖不芜 2019-06-23 16:29:57
在C+程序中以编程方式检测endianness是否有可编程的方法来检测您是在大端架构还是小端架构上?我需要能够编写在Intel或PPC系统上执行的代码,并使用完全相同的代码(即不附带条件的编译)。
查看完整描述

3 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

您可以通过设置int和屏蔽位来做到这一点,但最简单的方法可能是只使用内置的网络字节转换操作(因为网络字节顺序总是很大的字节)。

if ( htonl(47) == 47 ) {
  // Big endian} else {
  // Little endian.}

比特篡改可以更快,但这种方式是简单的,直截了当的,非常不可能搞砸。


查看完整回答
反对 回复 2019-06-23
?
BIG阳

TA贡献1859条经验 获得超6个赞

下面是一些确定计算机类型的代码

int num = 1;if(*(char *)&num == 1){
    printf("\nLittle-Endian\n");}else{
    printf("Big-Endian\n");}


查看完整回答
反对 回复 2019-06-23
  • 3 回答
  • 0 关注
  • 415 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信