首页 > C > 指针 阅读:57,774

指针应用:判断系统是低位优先还是高位优先

< 上一页 void* 类型指针 指针加减运算 下一页 >

定义一个整型变量x,让它的值为0x1。来观察下它在不同系统中的存储情况。在低位优先系统中,低位存放整数的低位,因此低地址的第一个字节的值为01。而高位优先系统中,低位存放整数的高位,因此低地址的第一个字节为00。因此如果把这个内存地址所在的第一个字节取出来,就可以区别系统是低位优先和高位优先了。

文本框: int x=0x1;

 

那么如何取得这个整数的低地址所在的这个字节呢?根据指针的定义,只需要定义一个char类型的指针,指向整数x的地址,那么char类型的指针获取的,就是低地址所在的这个字节。于是得到下面的算法:

/*return value :0—big-endian ;1—little-endian*/

int get_endian()

{

    int x=0x1;

    char *p=(char*)&x;

    return *p ;

}

int main(void)

{

    printf(”The platform %s \n ”,get_endian() ? ”is little-endian”:”is big-endian”);

    return 0; 

}

< 上一页 void* 类型指针 指针加减运算 下一页 >

周哥教IT,分享编程知识,提高编程技能,程序员的充电站。跟着周哥一起学习,每天都有进步。

通俗易懂,深入浅出,一篇文章只讲一个知识点。

当你决定关注「周哥教IT」,你已然超越了90%的程序员!

IT黄埔-周哥教IT技术交流QQ群:213774841,期待您的加入!

二维码
微信扫描二维码关注