2011-05-08 55 views
0

嗨,我剛剛完成我的學校項目。我只是不確定我是如何做到的。C項目不知道我的方式做了我的項目

我所擁有的文件:

headers.h - 我在這裏守的功能(聲明)和公共變量的所有頭。

save_sunctions.c - 的一些功能定義

move_sunctions.c - 的一些功能定義

loop_sunctions.c - 的一些功能定義

goone_sunctions.c - 的一些功能定義

main.c - 在這個文件中我使用了所有這些函數。

好嗎?或者我應該使用「extern」或其他東西?

回答

5

我認爲在頭文件和源文件之間建立一對一的關係比較傳統。這樣,您可以在另一個項目中僅包含部分代碼,而不包括許多在項目中沒有定義的函數的頭聲明。

因此,對於每個.c文件都有一個相應的.h文件,其名稱與.c文件中的每個函數聲明相同。

您需要爲每個頭文件添加所謂的guard,以確保它只包含一次。逆天是這樣的:

#ifndef GO_FUNCTIONS_GUARD 
#define GO_FUNCTIONS_GUARD 
.../* declarations go here 
#endif 

至於extern,有一個在你的描述沒有必要的。只要堅持頭文件。

+0

假設move_functions.c中的某個函數使用另一個文件中的另一個函數,如go_functions.c。所以我應該把這個函數的聲明從go_funstions.c放到move_funstions.h中以便能夠使用它。我對麼? – Domiik 2011-05-08 20:32:09

+0

在這個例子中,你聲明瞭go_functions.h中的函數。然後在move_functions.c中#include「go_functions.h」'。 – 2011-05-08 20:34:36

+0

好的,如果save_functions.c也使用go_functions.c中的某個函數,頭文件go_functions.h將被重新聲明;( – Domiik 2011-05-08 20:45:05

1

通常你應該儘量保留所有類似的代碼。在我看來,每個.c文件都應該有它自己的.h文件來引用。我想你可能把文件分開了,但這是受到解釋的。

相關問題