C语言struct定义中的冒号(“:”)

在C语言的struct定义中,可以使用冒号(“:”)来指定struct中的元素所占的bit数,注意是bit不是byte,因此可以出现诸如3bit、11bit的元素,如下面这段代码所示:

这个数据结构对应于如下两种x86架构下的中断描述符(IDT):

这种语法在表示一些带有非整字节元素的数据结构时非常方便,例如x86架构定义的一些数据结构,或是类似IPv4的网络协议头,可以免于用C++的成员函数的方式来封装。