我刚刚看到了一个代码片段,其中包含以前从未见过的语法。bool start : 1;
是什么意思?我在头文件的类定义中找到它。
最佳答案
struct record {
char *name;
int refcount : 4;
unsigned dirty : 1;
};
这些是位字段;数字以位为单位给出字段的确切大小。 (有关详细信息,请参见有关C的所有完整书籍。)位域可用于节省具有几个二进制标志或其他小域的结构中的空间,也可用于尝试遵循外部施加的存储布局。 (通过在某些机器上从左到右分配位域,而在其他机器上从右到左分配位域,降低了它们在后一项任务上的成功)
注意,以位为单位指定字段大小的冒号仅在结构(和联合)中有效;您不能使用此机制来指定任意变量的大小。
关于c++ - 有关冒号的简单C++语法问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2235325/