c - 操作符: in C,是什么?

标签 c operators

我最近遇到过这样的代码

struct tcpheader {
 unsigned char      tcph_reserved:4, tcph_offset:4;
 ....

很明显 : 是什么?有点像,但为什么我从来没有正式见过这个? 我找不到 : 的正式定义在哪里运营商群岛。我搜索过 变量声明的分区、拆分和划分都无济于事。

有人有关于 : 的一些信息吗?运算符?

最佳答案

它不是一个“运算符”,它是声明 bit fields 的一种方式。 .

它仅在 structunion 声明中有效,基本上可以让您告诉编译器您希望该字段使用多少位。

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

请注意,使用位域时位的顺序和布局是未指定的,由编译器决定,这使得它们非常不可移植。

关于c - 操作符: in C,是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25622211/

相关文章:

带参数的回调

javascript - some() 函数不适用于 && 运算符

javascript: !( booleanCondition() ) vs ( booleanCondition() == false )

c++ - 运算符的初始化列表和 RHS

c - realloc 后使用原始指针?

Python - 从 C 调用 python 函数

javascript - 使用 C、XML 或 JavaScript 和 Win 32 API 进行编码的想法

c# - 帮助解决 C# 中的隐式运算符重载

c - "return x == y"是什么意思?

c - 使用 `/MT` 未解析的 Visual C 运行时函数