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等)分配更多的位字段-下一个位字段将来自新的基础存储单元。

09-04 00:49