gpt4 book ai didi

c - 当位域大于字节大小时,字节顺序如何影响位域

转载 作者:太空宇宙 更新时间:2023-11-04 03:46:53 25 4
gpt4 key购买 nike

<分区>

我有以下程序。

#include<stdio.h>                                                                                                                                                                                    
#include<string.h>

struct abc {
int i;
char ar[10];
int j:9;
int k:3;
}abc1;


void wasim_dump_data(const void *object, size_t size)
{
int i;
printf("[ \n");
for(i = 0; i < size; i++)
{
if (i%4 ==0)
printf("[ ");
printf("%02x ", ((const unsigned char *) object)[i] & 0xff);
if ((i+1)%4 == 0)
printf("]\n");
}
printf("]\n");

}

int main ()
{
strcpy (abc1.ar, "wasim");
abc1.i=5;
abc1.j=2;
abc1.k=3;

struct abc * p1 = &abc1;
printf("abc1.ar : %s\nabc1.i : %d\nabc1.j : %d\nabc1.k : %d\n",abc1.ar, abc1.i, abc1.j, abc1.k);
wasim_dump_data (p1,sizeof(abc1));

return 0;
}

给出以下输出

abc1.ar : wasim
abc1.i : 5
abc1.j : 2
abc1.k : 3
[
[ 05 00 00 00 ]
[ 77 61 73 69 ]
[ 6d 00 00 00 ]
[ 00 00 02 06 ]
]

为什么2和3在内存中存储为02和06。大小超过一个字节的奇数位域如何存储在内存中?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com