-1

我在 C 中遇到了指针和结构的问题。假设:

typedef struct mdata{
   int a;
   int b;
    ...
} pred_data_attr;

typedef struct mConfig{
   pred_data_attr mdata;
   ...
} mConfig;

struct control{
   struct mConfig mcfg;
   ...
};

INT32 rdfapp(struct control *rdf){
    pred_data_attr* mdata = rdf->mcfg.mdata;
    ...
}

我收到了这个错误:

使用类型“pred_data_attr”初始化类型“struct pred_data_attr *”时类型不兼容

我该如何解决这个问题?

4

1 回答 1

3

关于什么:

INT32 rdfapp(struct control *rdf)
{
  pred_data_attr * mdata = &rdf->mcfg.mdata;

代码中的命名是另一个很好的例子,不恰当的命名会导致恼怒和错误。

将不同的事物命名为相同的名称不是一个好主意:

pred_data_attr * mdata /* here mdata is a pointer */

pred_data_attr mdata; /* here mdata is the instance of a structure */

如何设置命名有很多可能,我不想在这里推荐任何东西,因为它主要是关于:

给不同的东西起不同的名字。

于 2013-07-01T08:23:42.907 回答