首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这个数据结构怎么理解

2013-10-29 
这个数据结构如何理解?typedef union _ATCR_TypeDef{uint16_t d16struct{uint16_t TRC:5uint16_t MODE:1

这个数据结构如何理解?
typedef union _ATCR_TypeDef
{
    uint16_t d16;
struct
{
uint16_t TRC:         5;
uint16_t MODE:        1;
uint16_t FRE:         2;
uint16_t SAT:         6;
    uint16_t SYS:         2;
}
b;
}ATCR_TypeDef;

“:”后面的数字代表什么 struct 数据结构
[解决办法]

引用:
能不能详细解释一下,这个共用体到底占用几个字节?结构体中的各项到底怎么分配数据位


struct
{
uint16_t TRC:         5;  //占5个二进制位
uint16_t MODE:        1;  //占1个二进制位
uint16_t FRE:         2;  //占2个二进制位
//上面占满8位,就是一个字节的内存空间了
//下面也是8位 也占了一个字节的内存空间
uint16_t SAT:         6;  // 占6个二进制位
uint16_t SYS:         2;  // 占2个二进制位
}

[解决办法]
这是位域呀,给个例子,你就明白了,还是原来楼上那位大神教我的

 struct   bs 
 
          { 
 
              int   a:8; //这里标识int 4个字节,32位 只占8位而已
 
              int   b:2; // 这里 表示值占 2位,
 
              int   c:6;  //6位
           //只要后面没有用完 32位的话, 整个结构体大小就只是4个字节大小而已!
          //全部换成char的话, char 8个字节, 结构体旧只占2个字节~
 
          }; 



[解决办法]
位域在语法书中是有讲的,但其实现严重依赖具体的平台,所以讲得很粗略

热点排行