簡體   English   中英

初始化類型錯誤時類型不兼容

[英]Incompatible types when initializing type error

我在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 */

有很多可能的方式可以設置命名方式,在這里我不建議推薦任何命名方式,因為它的主要用途是:

給不同的事物起不同的名字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM