如何判斷字段大小?#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);
}
}
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!