如何加载知道第一个元素的结构?

时间:2014-12-19 19:29:53

标签: c++ c struct c99

我在某些地方看到

struct dri2_egl_config *dri2_conf = dri2_egl_config(conf);

结构是

struct dri2_egl_config
{
   _EGLConfig         base;
   const __DRIconfig *dri_single_config;
   const __DRIconfig *dri_double_config;
};

conf_EGLConfig* 但是当我在C ++上尝试这个时,它不会编译。如何在C ++上执行此操作以访问其他结构参数?

1 个答案:

答案 0 :(得分:0)

C中的这种外观继承。对于C ++和C,该标准确保不存在字段的重新排序。 因此,在C中,基本字段地址保证与整个结构相同。

C中的

dri2_egl_config()似乎是一个普通的Funktion。在C ++中,它将是一个永远不会返回指针的构造函数。 如果您要考虑虚拟信息,那么C ++中的寻址也会更复杂。对于没有虚拟方法等的简单情况,如果您知道字段大小,仍可以通过地址偏移进行寻址。 但这需要强制转换才能使指针类型保持一致。因此,dri2_egl_config()似乎返回了dri2_egl_config *。这一切都是直截了当的。