2010-08-02 14 views
0

Possible Duplicate:
typedef stuct problem in C的typedef stuct問題(非法使用這種類型的作爲表達)

你好

我面對我在C頭文件I所定義的結構:

typedef struct iRecActive{ 

    char iRecSID[32]; 
    unsigned char RecStatus; 
    int curSel; 

}iRecAcitve_t; 

但是當我在另一個文件中使用相同的結構時,編譯器給出了一些錯誤:

錯誤C2275:'iRecActive_t':非法使用此類型作爲表達式 d:\項目\項目原\ mirec2pc 1.0 \ httpapp \ httpapplication.h(15):看 'iRecActive_t'

我將不勝感激,如果有人可以幫助我

問候

聲明

Umair

+2

發佈導致錯誤的代碼。 – 2010-08-02 07:38:13

+0

儘管事實上你已經接受了這個答案,但你仍然有'iRecAcitve_t'拼寫錯誤:http://stackoverflow.com/questions/3385533/typedef-stuct-problem-in-c – paxdiablo 2010-08-02 07:41:53

+0

對不起,我改變了拼寫但我忘了改變在這裏。改變拼寫後,我得到這個問題 – Omayr 2010-08-02 07:48:10

回答

2

那麼,你可以在問題和代碼中檢查你的拼寫。你似乎已經宣佈它爲iRecAcitve_t,但使用iRecActive_t

+0

好。我很抱歉,我沒有更正問題中的拼寫,但我已經在我的代碼中更改了它。但改變拼寫後編譯器識別iRecActive_t;作爲一個結構,但給出了特定的錯誤。我仍然無能爲力,編譯器爲什麼這樣做? – Omayr 2010-08-02 07:46:41

1

這意味着你已經使用了編譯器期望的typename ......別的東西。

例如:

iRecActive_t *thing = iRecActive_t; // compiler expects new iRecActive_t() 

if (iRecActive_t) {} // compiler expects an expression 

正如其他人所說,你需要將它張貼在抱怨(15 httpapplication.h線)

編輯線

iRecActive_t iRecActiveObj[4];似乎是合法的,在這種情況下,它可能是之前的行,這讓編譯器感到困惑。例如:

if (thingOne ==      // oops 
    iRecActive_t iRecActiveObj[4]; 
+0

iRecActive_t iRecActiveObj [4]; 這是編譯器顯示相應錯誤的行 – Omayr 2010-08-02 07:52:48

相關問題