gpt4 book ai didi

c++ - 关于冒号的简单 C++ 语法问题

转载 作者:IT老高 更新时间:2023-10-28 21:45:39 24 4
gpt4 key购买 nike

我刚刚看到一个代码片段,其中包含一段我以前从未见过的语法。bool start : 1; 是什么意思?我在头文件的类定义中找到了它。

最佳答案

struct record {
char *name;
int refcount : 4;
unsigned dirty : 1;
};

那些是位域;该数字给出了字段的确切大小,以位为单位。 (有关详细信息,请参阅任何有关 C 的完整书籍。)位域可用于在具有多个二进制标志或其他小字段的结构中节省空间,并且它们还可用于尝试符合外部强加的存储布局。 (他们在后一项任务中的成功被一些机器上从左到右分配而在其他机器上从右到左分配的事实减轻了)。

请注意,用于指定字段大小(以位为单位)的冒号表示法仅在结构(和 union )中有效;您不能使用此机制来指定任意变量的大小。

  • 引用文献:K&R1 Sec. 6.7 pp. 136-8
  • K&R2 秒。 6.9 页 149-50
  • ISO 秒。 6.5.2.1
  • H&S 秒。 5.6.5 pp. 136-8

关于c++ - 关于冒号的简单 C++ 语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2235325/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com