<分区>
如果这是一个基本问题,我深表歉意,但我第一次在 struct
的定义中看到这些冒号 (:
)。这些冒号有什么作用?
struct gsm48_meas_res {
uint8_t rxlev_full:6,
dtx_used:1,
ba_used:1;
uint8_t rxlev_sub:6,
meas_valid:1,
spare:1;
uint8_t no_nc_n_hi:1,
rxqual_sub:3,
rxqual_full:3,
spare2:1;
uint8_t rxlev_nc1:6,
no_nc_n_lo:2;
uint8_t bsic_nc1_hi:3,
bcch_f_nc1:5;
uint8_t rxlev_nc2_hi:5,
bsic_nc1_lo:3;
uint8_t bsic_nc2_hi:2,
bcch_f_nc2:5,
rxlev_nc2_lo:1;
uint8_t rxlev_nc3_hi:4,
bsic_nc2_lo:4;
uint8_t bsic_nc3_hi:1,
bcch_f_nc3:5,
rxlev_nc3_lo:2;
uint8_t rxlev_nc4_hi:3,
bsic_nc3_lo:5;
uint8_t bcch_f_nc4:5,
rxlev_nc4_lo:3;
uint8_t rxlev_nc5_hi:2,
bsic_nc4:6;
uint8_t bcch_f_nc5_hi:4,
rxlev_nc5_lo:4;
uint8_t rxlev_nc6_hi:1,
bsic_nc5:6,
bcch_f_nc5_lo:1;
uint8_t bcch_f_nc6_hi:3,
rxlev_nc6_lo:5;
uint8_t bsic_nc6:6,
bcch_f_nc6_lo:2;
} __attribute__ ((packed));
我在为这些 uint8_t
变量赋值时遇到了一些问题。最初我认为这是默认分配,但在穷尽所有其他可能性之后,我认为它与这些冒号有关。