2013-07-12 144 views
2

任何人都可以告诉我,这段代码中发生了什么。我试图搜索很多地方,但不明白代码的评论部分到底是什么。:c/C++中的运算符

#include<stdio.h> 

struct XYZ { 
    //int a:6; this one. 
    char s; 
}structure; 

int main() { 
    printf("%lu",sizeof(structure)); 
    return 0; 
} 

我得到的输出为4

+3

这是[bit field](https://en.wikipedia.org/wiki/Bit_field)。 –

+0

查找位字段:https://en.wikipedia.org/wiki/Bit_field – Nbr44

回答

4

这行注释掉。它什么都不做。

如果它没有被注释掉,这将意味着int a的大小限制为只有6位。它对结构内的位域很有用。

+0

已使用6位,为同一字节中的其他事物保留2位? –

+0

哪6位?该结构中的第一个或最后一个? –

+0

@Tribse:谢谢。 –