如何判断字段大小(判断大小端的方法)
#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