2011-09-12 112 views
3

可能重复:
What does 'unsigned temp:3' means冒号操作

struct sample{ 
    int x :2; 
    char y :4; 
}; 

是什么冒号运算符在上面的代码呢?

+0

不要忘记接受您询问的其他每个问题的最有用答案。查看常见问题和每个答案的复选标记(打勾)。 –

+0

请记住,(a)'int x:2;'的符号是实现定义的(使用'signed int'或'unsigned int'),和(b)'char'类型的位域是非标准的并且没有真正的理由不声明'y'为'unsigned y:4;'。 –

回答

7

它用于指定位字段。字段的大小以位表示。该布局是特定于编译器的。

+0

Damnit,只要我真的检查我的答案有人总是忍者的我:(它做得很好 – Avery3R

+0

你不检查,你知道... – Mysticial

+0

@Jonathan Leffler - 你的意思是'x ''和'y'在下面的结构中不能保证吗? - struct layout {int x:2; int y:2};' – MByD