我正在爲一個類做一個項目,並且需要幫助將我的程序分解成單獨的部分。我的老師給了我們一個提示,說明哪些文件會做什麼,但他沒有告訴我們如何編寫頭文件。根據我在線學到的知識,我將函數原型從每個.c文件放入其自己的.h文件中,並將其包含在.c文件中的「header.h」中。但是,我得到的編譯錯誤,如如何將一個C文件分解成多個文件
course1.c:20:3: warning: implicit declaration of function ‘initialize’ [-Wimplicit-function-declaration]
initialize(courses, subjects, CRN);
^
vector1.c:14:6: error: conflicting types for ‘resize’
void resize(char ***courses, char***subjects, int **CRN) {
^
In file included from vector1.c:2:0:
vector.h:11:6: note: previous declaration of ‘resize’ was here
void resize(char ***subjects, char ***courses, int **CRNs, int *size);
^
vector1.c:39:6: error: conflicting types for ‘deallocate’
void deallocate(char **courses, char**subjects, int *CRN) {
^
In file included from vector1.c:2:0:
vector.h:12:6: note: previous declaration of ‘deallocate’ was here
void deallocate(char **subjects, char **courses, int *CRNs, int size);
我敢肯定我的文件有正確的語法,因爲我單獨編譯它們變成.o文件和他們工作得很好。有人可以請一般說明,如何將程序分解成單獨的文件?我認爲我顯然做錯了。編譯器給我的一個錯誤是函數沒有被定義,當它被明確定義在我包含的頭文件中時。
請格式化您的問題:)(在突出顯示代碼元素後,使用頁面頂部的** {} **按鈕)來幫助提高可讀性,因爲目前很難閱讀。 – jbutler483 2014-09-29 12:40:40
如果您閱讀編譯錯誤,您會看到存在相互衝突的函數減速。 'vector.h'和'vector1.c'中定義的'resize'和'deallocate'函數是不同的。 'initialize'函數有一個警告,這意味着在定義它之前使用調用該函數。這是一個警告,而不是編譯錯誤。 – 2014-09-29 12:46:08