gpt4 book ai didi

c - C中的位域。解释S.a和S.b的值

转载 作者:行者123 更新时间:2023-11-30 20:16:19 25 4
gpt4 key购买 nike

考虑以下代码

#include<stdio.h>
#include<conio.h>

struct mystruct
{
int a:1;
int b:2;
int c:3;
};

void main()
{
struct mystruct S;
clrscr();
S.a=1;
S.b=-5;
S.c=100;
printf("%d %u %d %u %d %u",S.a,S.a,S.b,S.b,S.c,S.c);
getch();
}

最佳答案

您正在定义一个 1 位有符号数 a。这没有多大意义,因为一旦符号被编码,就没有任何位可供使用。小位域通常应为 unsigned 类型,并且宽度为 1 的字段必须是,那么您可以存储 0 或 1,这可能就是您的意思。

同样的问题也发生在 b 成员上,它只有两位宽,但您试图存储 -5,它实际上不会以两位进行编码非常容易。

关于c - C中的位域。解释S.a和S.b的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12616487/

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