如何判断字段大小(判断大小端的方法)

#include <stdio.h>/*1. 利用不同的数据类型占用空间不同*/,我来为大家科普一下关于如何判断字段大小?下面希望有你要的答案,我们一起来看看吧!

如何判断字段大小(判断大小端的方法)

如何判断字段大小

#include <stdio.h>

/*1. 利用不同的数据类型占用空间不同*/

int main()

{

short int x;

char y,z;

x = 0x1122;

y = ((char *)&x)[0]; //低地址

z = ((char *)&x)[1]; //高地址

printf("y=%x\n",y);

printf("z=%x\n",z);

if (y == 0x11)

{

printf("little endian\n");

}

else if (z == 0x22)

{

printf("big endian\n");

}

return 0;

}

/*2.利用指针赋值比较/

typedef unsigned char BYTE;

int main(int argc, char* argv[])

{

unsigned int n,*p;

p = &n;

n = 0;

*(BYTE *)p = 0xff;

if (n == 0xff)

{

printf("The endian of cpu is little\n");

}

else

{

printf("The endian of cpu is big\n");

}

return 0;

}

/*3.利用指针取值时不同类型读取字节数不一样*/

#include<stdio.h>

int main()

{

int x = 0x1;

char *p = (char *)&x;

if (*p)

{

printf("little\n");

}

else

{

printf("large\n");

} return 0;

}

/*4.利用union判断大小端*/

int checkCPU()

{

{union w

{

int a;

char b;

} c;

c.a = 1;

return (c.b == 1);

}

}

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页