TI中文支持网
TI专业的中文技术问题搜集分享网站

TI寄存器位域定于

typedef struct
{
    UINT16  u16CNT          : 1;   
    UINT16  u16Re             : 6; 
    UINT16  u16Comm      : 1; 
    UINT16  u16Comm      : 8; 
    UINT16  u16SlaveN     : 7; 
    UINT16  u16Protoco    : 6;   
    UINT16  u16AAM          : 1;  
    UINT16  u16AME          : 1;  
    UINT16  u16IDE           : 1;   
    UINT16  u16CommS  : 12;
    UINT16  u16CommE   : 4;  
    UINT16  u16Data1       : 16;
    UINT16  u16Data2       : 16;  
    UINT16  u16Data3       : 16; }FRAM;
请问这个类似在TI头文件中定义的位域 应该怎么理解呢?

比如:这个变量 u16CNT       占多大空间?只占1位吗?

 

Forrest:

是的,只占一位,楼主可以编段程序测试一下。

typedef struct
{
    UINT16  u16CNT          : 1;   
    UINT16  u16Re             : 6; 
    UINT16  u16Comm      : 1; 
    UINT16  u16Comm      : 8; 
    UINT16  u16SlaveN     : 7; 
    UINT16  u16Protoco    : 6;   
    UINT16  u16AAM          : 1;  
    UINT16  u16AME          : 1;  
    UINT16  u16IDE           : 1;   
    UINT16  u16CommS  : 12;
    UINT16  u16CommE   : 4;  
    UINT16  u16Data1       : 16;
    UINT16  u16Data2       : 16;  
    UINT16  u16Data3       : 16; }FRAM;
请问这个类似在TI头文件中定义的位域 应该怎么理解呢?

比如:这个变量 u16CNT       占多大空间?只占1位吗?

 

10#:

结构体的定义,查看C语言教程,分号后的数字表示该结构体成员变量所占用空间的大小。

赞(0)
未经允许不得转载:TI中文支持网 » TI寄存器位域定于
分享到: 更多 (0)