A1A*_*3A4 2 c struct qemu bit-fields
在查看QEMU的源包时,我在exec.c文件中找到:
struct PhysPageEntry {
/* How many bits skip to next level (in units of L2_SIZE). 0 for a leaf. */
uint32_t skip : 6;
/* index into phys_sections (!skip) or phys_map_nodes (skip) */
uint32_t ptr : 26;
};
Run Code Online (Sandbox Code Playgroud)
我想知道:运算符意味着什么.我在C的语法定义列表中找不到它.
这是一个用位字段声明的结构,结构成员称为位字段:使用结构声明设置位字段,该结构声明标记每个字段并确定其宽度.上述定义引起PhysPageEntry包含一个6位字段和一个26位域成员即skip和ptr分别.它的签名是
struct
{
type [member_name] : width ;
};
Run Code Online (Sandbox Code Playgroud)
这里宽度是位域中的位数.宽度必须小于或等于指定类型的位宽.
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |