xueyoujin 发表于 2013-7-18 17:05:31

大侠们看看结构体定义 看不太明白


typedef struct
{
unsigned char MessageFormatterOneSecondAlert:1;
unsigned char OneSecondAlertDisplayFormatter:1;
unsigned char ReadSeasureParIntervalTime:1;
      unsigned char CalibrationJudgmentTime:1;
      unsigned char bitflag_ComTimeout:1;
      unsigned char bitflag_Receivefull:1;
      unsigned char bitflag_RS485:1;
      unsigned char bitflag_in_program:1;
      unsigned char bitflag_write_ptime:1;
      unsigned char bitflag_second:1;      
      unsigned char bitflag_halfsecond:1;
      unsigned char bitflag_threesecond:1;
      unsigned char bitflag_thirtymin:1;
      unsigned char bitflag_even:1;
      unsigned char bitflag_evencheck:1;      
      unsigned char bitflag_warncheck:1;      

      
      
} MESSAGE_BOARD;

这里的所有元素后面:1啥意思比如定义    MESSAGE_BOARDa;    倒数第二个元素bitflag_evencheck是不是相当于a的第14位???

sevenchrist 发表于 2013-7-18 17:14:16

本帖最后由 sevenchrist 于 2013-7-18 17:15 编辑

:1就是占用1位,你后面的理解是正确的,实际是不是要考虑大小端我记不太清楚了。
想要了解得更详细,可以去查一下“位域”。

byrin219 发表于 2013-7-18 17:17:48

C语言中的 位字段 存储方式…

xueyoujin 发表于 2013-7-18 17:30:16

结构体中的每个元素所占的位域都是1bit那我的这个定义总共16个bit在实际的物理地址中 是连续存储占用2bytes还是占用16个bytes

苦行僧 发表于 2013-7-18 18:26:23

恩,2Byte应该

lusson 发表于 2013-7-18 18:27:51

在字节中的位置跟大小端有关系
页: [1]
查看完整版本: 大侠们看看结构体定义 看不太明白