我有兩個.h文件和.c文件如下向前聲明拋出重新定義錯誤
啊
typedef struct mode_info_t_ mode_info_t;
struct common {
int create;
mode_info_t *mode_info;
};
BH
typedef struct mode_info_t_ {
int primary;
int secondary;
} mode_info_t;
的main.c
#include "a.h"
#include "b.h"
-----
當編譯.c時,它拋出錯誤 -
b.h:17:錯誤的:typedef 'mode_info_t' 的重新定義
A.H:50:錯誤: 'mode_info_t' 以前的聲明在這裏
這裏有什麼問題的專家?
我不是用typedef專家,但你作爲一個結構typedefing mode_info_t兩次,一次是另一個變量,並再次...還能說什麼? – Sam
正是錯誤所說的......你已經重新定義了一個類型。這不是'結構mode_info_t_'雖然,但'mode_info_t'你Typedef的吧。 – Dmitri
@BLUEPIXY你說得對。還有一件事是爲什麼在同一個結構中多次執行'typedef'。並且還在結構中使用用戶定義的數據類型? – Gopi