位域的内存位置
Memory location of bit-fields
2014年11月c++ 14标准工作草案:
§1.7 6
c ISO/IEC N4296[示例:一个结构体声明为
struct {
char a;
int b:5,
c:11,
:0,
d:8;
struct {int ee:8;} e;
}
包含四个独立的内存位置:字段a和位字段d和e.ee分别是独立的内存位置,并且可以并发修改而不需要互相干扰。位域b和c在一起构成第四个内存位置。位域b和c不能可以同时修改,但b和a可以同时修改。- - -结束例]
我假设:0
作为各种分隔符,这就是为什么d
有一个单独的内存位置,而b
和c
没有。然而,我不明白
组成第四个内存位置
b
和c
是union
吗?例如,相当于
union {
int b:5;
int c:11;
};
不,它们不像在union
示例中那样共享任何位。
它们只是考虑内存位置的一个单元。
换句话说,以下是您的示例中的位(可能)
AAAAAAAA BBBBBCCCCCCCCCCC DDDDDDDD EEEEEEEE (ee sharing e)
空格用来显示内存位置,不占用内存空间
相关文章:
- 你好。。。id_public变量不应该给出结果为 81 和 86 吗?为什么它为两个派生类占用不同的内存位置?
- 内存所有位置 wxWidgets
- 为什么字符串的 move() 会改变内存中底层数据的位置?
- 如何在不等待检索的情况下获取C++中的内存位置?
- 内存中类位置的成员是否取决于类成员在类定义中的位置?
- 向量的内存位置不连续
- 如何根据C++在同一内存位置重新初始化 C# 中的对象(还是自动完成)?
- 常量引用的内存位置
- C++强制变量到一个固定的内存位置
- 为什么未初始化的内存位置的值给出 -842150451 的值?
- 为什么存储在内存位置的值会发生变化?
- 在特定内存位置构造 c++ 对象
- 如果不初始化结构中的向量,它会自动为空还是具有随机内存位置的值?
- 如何识别内存泄漏的位置
- 内存位置出现Microsoft C++异常:std::out_of_range
- 函数,返回变量c++占用的内存位置的大小
- 在尝试使用CUDA分配内存时,我遇到了访问冲突写入位置错误
- delete如何知道对象在内存中的起始位置
- 无法在 Opencv 中显示图像导致内存位置
- 如何修复<程序名称>中的"<内存位置>未处理的异常。Visual Studio 2017 中的访问冲突写入位置<内存位置>"