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

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

精华知识

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Keil5是一款常用的嵌入式开发工具,用于编写和调试嵌入式系统的程序。下面是Keil5中常见的26个错误及其解释: 1. Error C000: Syntax error in expression 这个错误表示表达式中存在语法错误。 2. Error C001: Undefined symbol 这个错误表示使用了未定义的符号。 3. Error C002: Illegal use of register 这个错误表示在不允许的地方使用了寄存器。 4. Error C003: Constant expression required 这个错误表示需要一个常量表达式。 5. Error C004: Type mismatch 这个错误表示类型不匹配。 6. Error C005: Illegal use of floating-point 这个错误表示在不允许使用浮点数的地方使用了浮点数。 7. Error C006: Illegal use of bit-field 这个错误表示在不允许使用位域的地方使用了位域。 8. Error C007: Illegal use of pointer 这个错误表示在不允许使用指针的地方使用了指针。 9. Error C008: Illegal use of array 这个错误表示在不允许使用数组的地方使用了数组。 10. Error C009: Illegal use of structure 这个错误表示在不允许使用结构体的地方使用了结构体。 11. Error C010: Illegal use of union 这个错误表示在不允许使用联合体的地方使用了联合体。 12. Error C011: Illegal use of enum 这个错误表示在不允许使用枚举的地方使用了枚举。 13. Error C012: Illegal use of typedef 这个错误表示在不允许使用类型定义的地方使用了类型定义。 14. Error C013: Illegal use of function 这个错误表示在不允许使用函数的地方使用了函数。 15. Error C014: Illegal use of macro 这个错误表示在不允许使用宏的地方使用了宏。 16. Error C015: Illegal use of inline 这个错误表示在不允许使用内联函数的地方使用了内联函数。 17. Error C016: Illegal use of asm 这个错误表示在不允许使用汇编代码的地方使用了汇编代码。 18. Error C017: Illegal use of interrupt 这个错误表示在不允许使用中断的地方使用了中断。 19. Error C018: Illegal use of pragma 这个错误表示在不允许使用编译指示的地方使用了编译指示。 20. Error C019: Illegal use of attribute 这个错误表示在不允许使用属性的地方使用了属性。 21. Error C020: Illegal use of volatile 这个错误表示在不允许使用volatile关键字的地方使用了volatile关键字。 22. Error C021: Illegal use of restrict 这个错误表示在不允许使用restrict关键字的地方使用了restrict关键字。 23. Error C022: Illegal use of inline assembly 这个错误表示在不允许使用内联汇编的地方使用了内联汇编。 24. Error C023: Illegal use of preprocessor directive 这个错误表示在不允许使用预处理指令的地方使用了预处理指令。 25. Error C024: Illegal use of linker directive 这个错误表示在不允许使用链接器指令的地方使用了链接器指令。 26. Error C025: Illegal use of debugger directive 这个错误表示在不允许使用调试器指令的地方使用了调试器指令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值