【问题标题】:What does ': number' after a struct field mean? [duplicate]结构字段后的“:数字”是什么意思? [复制]
【发布时间】:2010-06-12 17:07:44
【问题描述】:

可能重复:
What does ‘unsigned temp:3’ means

我遇到了一些我不确定的类似代码:

 unsigned long byte_count  : 32
 unsigned long byte_count2 : 28

: 在这里是什么意思?

【问题讨论】:

标签: c++ c


【解决方案1】:

那是bit field

computer programming 中使用的数据结构。它由许多相邻的计算机内存位置组成,这些位置已被分配以保存bits 的序列,以便可以寻址集合中的任何单个位或一组位。位域最常用于表示已知的固定位宽的integral types...

【讨论】:

  • 哇,没想到这么快就有人回复了。赞赏!
  • @lukmac:如果这个答案回答了你的问题,你应该点击这个答案旁边的复选标记。 :)
【解决方案2】:

这也是非标准的。位域的类型必须为 _Bool (C99)、有符号整数或无符号整数。但是,GCC 允许任何整数类型。类型会影响字段的对齐方式、任何后续字段的对齐方式以及包含位字段的结构的整体大小。

【讨论】:

  • 在 C++ 中,它们可以是任何整数或枚举类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
  • 2011-12-02
  • 1970-01-01
  • 2017-12-09
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多