MDK中定义共用体遇到的问题
2017-01-16 18:20
134 查看
重整代码的过程中遇到的问题,百度没有找到解决方法,解决后来写一下自己的解决方法。 初衷是想实现寄存器式的操作,既能够位访问,也能够字访问,下面是代码。
typedef struct { uint16 ChargeVoltage; uint16 BatteryVoltage; union { uint8 Status; struct { uint8 external_relay :1 ; uint8 internal_relay :1 ; uint8 charger_relay :1 ; uint8 user_relay :1 ; uint8 st32_power_pin :1; uint8 router_power_pin :1; uint8 pc_power_pin :1; uint8 key_pin :1; }; }; }SendData_TypeDef;
实际在MDK4.70上使用,编译过程中报错:
struct "<unnaned>" has no field ....
在声明头文件的位置加上
#pragma anon——unions顺利编译
大致意思了解到是:MDK规则检查比较严,不允许在共用体内声明不带结构体名的结构体。
而上面那句话就是让编译器屏蔽这个检查
找到ARM官方的一个好东西:里面有详细说明
嗯,就酱,欢迎拍砖。
相关文章推荐
- 初学AJAX遇到的的问题:使用javascript代码调用服务端代码时提示'WebForm1'未定义
- “System.Web.UI.HtmlControls.HtmlGenericControl”并不包含“Convert”的定义 千古难遇的问题让我遇到了。
- 关于用MDK定义无法跳转的问题
- 搭建SSH框架遇到的struts.xml找不到spring定义的bean的错误(配置文件的路径问题)
- 今天遇到一个定义一个枚举变量的问题。
- ADO编程中ATL所遇到的定义问题
- @Autowire与@Resource的区别——Shiro框架中定义Realm遇到的问题
- underscore.js定义模板遇到问题:Uncaught TypeError: Cannot read property 'replace' of undefined
- 遇到QT信号不能在派生类定义的问题 undefined referenc signals
- 【不算奇葩的问题】MDK调试stm32遇到BEAB BKPT 0xAB,重定向printf的BUG
- ADO编程中ATL所遇到的定义问题
- 遇到的问题-----------定义一个全局变量,在page_load里赋值,但在其他按钮中调用仍为空
- 2011.11.12使用MDK遇到的问题总结
- 【转载】关于2440的MDK平台下移植ucOS2,遇到的问题,及解决办法
- Linux 下使用POSIX中为线程创建和同步定义的API时遇到的问题
- 调用javascript遇到奇怪的“函数未定义”问题
- VC里引用第三方库常遇到的链接重复定义问题
- 如何处理编写HPP时遇到的重定义问题
- ADO编程中ATL所遇到的定义问题
- C++虚函数声明和定义以及g++编译遇到的一些问题