引用结构中的值
Referencing values in structures
我正在查看Android 4.3中的opcommon.cpp,并将其与4.1.1中的相同文件进行比较
在4.1.1和4.3中,Object.h文件将Instfield结构定义为struct InstField : Field {
int byteOffset;
};
和Field结构为
struct Field {
ClassObject* clazz; /* class in which the field is declared */
const char* name;
const char* signature; /* e.g. "I", "[C", "Landroid/os/Debug;" */
u4 accessFlags;};
现在我的问题很简单:给定声明InstField* ifield;
opcommon从4.1.1的ifield->field.name
改为4.3的ifield->name
来检索name变量。两者有什么区别,哪个更好?如果不是,他们为什么要改变它?
我不能谷歌这个问题,因为->被忽略了,我不知道这个词来描述操作符。例如field.name是引用结构中的变量和->用于解引用指针,并做同样的事情,但它的名称是什么?另一个关于术语的小问题,InstField结构定义是包装器还是扩展?
如果您也发布了4.1.1的代码片段,那将会很有帮助。ifield->field.name
建议字段本身是结构体InstField的成员,并且字段也是一个具有成员名称的结构体(可以是任何结构体,不一定是field类型)。另一方面,ifield->name
表明name本身是结构体InstField的成员(通过继承),并且不是成员的成员。您需要查看4.1.1中定义InstField的部分。这可能与4.3节的定义不同
相关文章:
- 使用对const结构的const数组的引用进行构造
- 为什么将一个结构的引用设置为等于另一个结构只会更改一个数据成员?
- 如何传递带有通过引用传递的结构参数的函数?
- 具有引用成员的结构是否具有唯一的对象表示形式
- 设计将引用元素移动到开头的数据结构.C++
- 在 c++ 中将变量作为结构构造函数中的引用传递
- 对结构方法的未定义引用
- 为什么结构化绑定不使用"auto&"返回对结构成员的引用,而是返回成员本身
- C++-将具有引用的长参数列表重构为结构
- 在结构中使用 switch 引用结构中的数据C++
- 如何防止引用返回的私有结构的突变
- 取消引用 void 指针以将值分配给结构
- 使用 sscanf 设置结构引用的值
- 结构引用编译错误:预期的标识符或"&"标记之前的"("
- Boost Intervocess:通过迭代通过从结构引用对象的映射进行迭代时
- 结构引用和取消引用运算符
- 设置数据结构引用
- 在 OpenGL 中呈现三角形结构引用数组
- 正在将常量结构引用转换为非常量指针
- C++中结构引用的默认参数