我在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 *”时不兼容的类型
我该如何解决这个问题?
最佳答案
关于什么:
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 */
有很多可能的命名方式可以设置,我不想在这里推荐任何命名方式,因为它主要涉及以下内容:
给不同的事物起不同的名字。