C语言判断机器CPU大小端模式的两种方法

C语言判断机器CPU大小端模式的两种方法

本文介绍使用C语言编写程序判断机器CPU大小端模式的两种方法。

第一种方法思路:

利用指针的强制类型转换

#include <stdio.h>

int main()
{
    int a = 0x12345678;
    char *p = (char *)&a;//强制转换取到a最低字节的地址
    if (*p == 0x78) {
        //a  12 34 56 78(Hex)
        //*p          78
        printf("little endian\n");
    }
    else if (*p == 0x12) {
        //a  78 56 34 12(Hex)
        //*p          12
        printf("big endian\n");
    }
    return 0;
}

第二种方法思路:

利用共用体所有数据都从同一地址开始存储。

#include <stdio.h>

union test_union//用于测试的共用体
{
    int a;//元素a,占4个字节
    char b;//元素b,占1个字节,b在内存中的地址为a最低字节的地址
} test;

int main()
{
    test.a = 0x12345678;
    if (test.b == 0x78) {
        //test.a 12 34 56 78(Hex)
        //test.b          78
        //b在内存中的地址为a最低字节的地址
        printf("little endian\n");
    }
    else if (test.b == 0x12){
        //test.a 78 56 34 12(Hex)
        //test.b          12
        //b在内存中的地址为a最低字节的地址
        printf("big endian\n");
    }
    return 0;
}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,519评论 25 709
  • 在此特此声明:一下所有链接均来自互联网,在此记录下我的查阅学习历程,感谢各位原创作者的无私奉献 ! 技术一点一点积...
    远航的移动开发历程阅读 13,895评论 12 197
  • 你在什么位置? 我想要离开现在的环境,找一个没人认识我的地方重新开始。就算在那里我会受尽诸多苦难。我可能会没有住的...
    绯城阅读 3,480评论 0 0

友情链接更多精彩内容