在vc++下编程  如何确认自己的电脑内存 是大端还是小端????

解决方案 »

  1.   

    bool isBigEndian()
    {
       short i = 0x100;
       return *((char *)&i);
    }
      

  2.   


    int main(int argc, char* argv[])
    { int i = 0x0001;
    (char)i ? printf("litte-endian\n") : printf("big-endian\n");
    return 0;
    }
      

  3.   

    楼上的,如果int i = 1的话,无论大端小端,(char)i 都等于1吧,否则C语言的强制转换还有什么意义?
      

  4.   

    #include "stdafx.h"int main(int argc, char* argv[])
    {
        if( 'X' == ( ( ( *( unsigned short * )"XP" ) >> 8 ) & 0xff ) )
        {
            printf( "big\r\n" );
        }
        else
        {
            printf( "little\r\n" );
        }
        return 0;
    }