Possible Duplicate:
What does 'unsigned temp:3' means
我正在编写一个iOS应用,必须处理一些旧的普通C语言:
typedef struct {
int32_t tid;
int32_t pos;
uint32_t bin:16, qual:8, l_qname:8;
uint32_t flag:16, n_cigar:16;
int32_t l_qseq;
int32_t mtid;
int32_t mpos;
int32_t isize;
} bam1_core_t;
我的问题涉及
uint32_t bin:16, qual:8, l_qname:8;
行,有人可以告诉我如何访问这些字段,这些字段在我看来是32位int的某种位向量子字段。谢谢,
道格
最佳答案
这些是位字段。您可以像访问结构中的其他任何字段一样访问它们。冒号后面的数字定义了用于存储该字段的位数。例如,qual:8
表示qual
可以保存(仅)0到255之间的值。
我应该补充说:0
是特殊的-这意味着不应从当前项(int,uint32_t等)分配更多的位字段-下一个位字段将来自新的基础存储单元。