2011-02-14 100 views
2

我無法對編譯時錯誤進行排序。我正在編譯C項目。我的main.c文件有一個#include,它可以從中獲取我用於項目的結構的定義。問題的關鍵是,每一個我試圖編譯我的代碼時,我有錯誤錯誤:'Mystruct'未聲明(首次在此函數中使用)

struct Mystruct* ps = (struct Mystruct*)malloc(sizeof(Mystruct)); // I have this 
// error at compile time 

error: 'Mystruct' undeclared (first use in this function) 

又豈是爲什麼編譯器是無法讀取的結構定義? 將包括文件夾的設置是否正確

感謝

回答

17

聽起來像是你需要在你的表達要麼使用sizeof(struct Mystruct)或使用typedef struct Mystruct Mystruct地方。在C中,結構體有它們自己的命名空間。

+0

非常感謝!我在C++工作了9年,現在在C工作,即使是最小的事情也讓我發狂! – 2011-02-14 18:00:04

相關問題