首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

keil也支持匿名结构体、联合体

keil也支持匿名结构体、联合体

  • #pragma anon_unions
  • typedef
    union {  
  •         unsigned int num;  
  •         struct {  
  •                 unsigned int nLow        :8;  
  •                 unsigned int nHigh         :8;  
  •         };  
  • }kkTypedef;  

  • void jjj(void)  
  • {  
  • kkTypedef kknum;  
  •     kknum.num=99;  
  •     kknum.nLow=10;  
  • }  

//keil中默认是不支持匿名结构体的,需要编译指令#pragma anon_unions指名。
但是不支持这样的匿名结构体





  • #pragma anon_unions
  • union {  
  •         unsigned int num;  
  •         struct {  
  •                 unsigned int nLow        :8;  
  •                 unsigned int nHigh         :8;  
  •         };  
  • };  

  • void jjj(void)  
  • {  

  •     num=99;  
  •     nLow=10;  
  • }  


error:  #20: identifier "num" is undefined
error:  #20: identifier "nLow" is undefined
但在IAR里是可以的,有点不一样。
补充:好像在GCC编译器中也是可以的。
补充2:在CCS V5.1中使用MSP430中不能使用以上两个结构体,不知道在CCS V5.1中MSP430的编译器是什么,反正是不支持匿名结构体。
返回列表