接线员:在C中,它是什么?

Hel*_*cal -1 c operators

我最近遇到过这样的代码

struct tcpheader {
 unsigned char      tcph_reserved:4, tcph_offset:4;
 ....
Run Code Online (Sandbox Code Playgroud)

这显然是什么:样的,但为什么我从未正式见过这个?我无法找到:运营商的正式定义.我搜索了变量声明的分区,拆分和划分无济于事.

任何人都有关于:运营商的一些信息?

unw*_*ind 6

它不是一个"运算符",它是一种声明称为位域的方法.

它只在内部structunion声明中有效,并且基本上允许您告诉编译器您希望字段使用多少位.

因此,您的示例为每个字段指定了四个位,可能希望将两个字段打包到同一个8位字节中.

请注意,使用位字段时的位顺序和布局是未指定的,直到编译器,这使它们非常不可移植.