//bigdien orDWORD wd = 0x22; //unsigned long 32位机器上是4个字节if( *((BYTE *)&wd) == 0x22 ) //BYTE unsigned char 1个字节AfxMessageBox(_T("Small-Endian"));elseAfxMessageBox(_T("Big-Endian"));
这是VC中的测试。。。
例外一个完整的C程序如下:
/** file: endian.c* descriptio: test our machine is big-endian or small-endian*/#include <stdio.h>int main(int argc, char *argv[])
{union tagwt{int a;short b;}wt;wt.a = 0x11223344;//sizeof(wt)=4,sizeof(int)=4,sizeof(short)=2printf("sizeof(wt)=%d,sizeof(int)=%d,sizeof(short)=%d\n", sizeof(wt), sizeof(int), sizeof(short));if (wt.b == 0x3344)printf("small-endian\n");else if(wt.b == 0x1122)printf("big-endian\n");elseprintf("what's the fucking!");
}