我最近遇到过这样的代码
struct tcpheader {
unsigned char tcph_reserved:4, tcph_offset:4;
....
很明显 :
是什么?有点像,但为什么我从来没有正式见过这个?
我找不到 :
的正式定义在哪里运营商群岛。我搜索过
变量声明的分区、拆分和划分都无济于事。
有人有关于 :
的一些信息吗?运算符?
最佳答案
它不是一个“运算符”,它是声明 bit fields 的一种方式。 .
它仅在 struct
和 union
声明中有效,基本上可以让您告诉编译器您希望该字段使用多少位。
因此,您的示例为每个字段指定了 4 位,可能希望这两个字段都打包到同一个 8 位字节中。
请注意,使用位域时位的顺序和布局是未指定的,由编译器决定,这使得它们非常不可移植。
关于c - 操作符: in C,是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25622211/