keil c语言 位域,联合体位域在keil c遇到的问题怎样解决?

联合体位域在keil c遇到的问题怎样解决?

因为我想让一个字节对应多个位,所以最近在网上查了一些关于联合体定义位域的资料,但是我放到keil的编译环境里运行,查看变量时得出它并不是一位,而是一个字节的变量,麻烦有高手可以解释一下原因吗,附上一个简单的测试程序:查看uBit.sBit.b0结果是一字节的,假如定义改成"unsigned b0:1;",结果变量就成了两个字节的整形变量

union unionBit

{

unsigned char unionBitTemp;

struct

{

unsigned char b0:1;

unsigned char b1:1;

unsigned char b2:1;

unsigned char b3:1;

unsigned char b4:1;

unsigned char b5:1;

unsigned char b6:1;

unsigned char b7:1;

}sBit;

}uBit;

void main(void)

{

uBit.sBit.b0=1;

while(1);

}

2个回答

67b0a70febe552c922c54bb8560d6ef6.png

b2985594f84fe742ed462fc654d43c40.png

** FATAL ERROR L210: I/O ERROR ON INPUT FILE:

** FATAL ERROR L210:在输入文件里的io口错误

EXCEPTION 0021H: PATH OR FILE NOT FOUND

EXCEPTION 0021H:路径或者文件不存在

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

9be8cdd6ae5b1e9e12ad3f5686482c3c.png

gogose这位兄弟是什么意思,看不懂,可以说清楚点吗,这段程序没包含什么文件,我编译可以通过并且可以运行

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

精华知识