2009-12-10 162 views
4

說你有一個名爲sum.c源文件看起來像這樣:爲什麼在方法定義文件中包含頭文件?

#include "sum.h" 

int sum(int x, int y) { 
    return x+y; 
} 

什麼的方法,包括在它自己的定義文件頭的地步?你不應該只將它包含在調用總和函數的源文件中嗎?

回答

10

這樣可以避免可能出現的問題,如果頭文件和源文件中的定義不同。

10

如果您不包含頭文件,那麼您將無法在其他方法中使用sum方法,該方法在同一個文件中聲明之前的

5

在C語言中這是一個很好的做法,只是因爲體面的編譯器應該強調函數的原型和實現之間的差異。更不用說在更復雜的例子中,你也可以在你的函數需要的頭文件中聲明一個結構或類似的結構。你不想重複這個,所以你包含頭文件。

0

頭文件可能定義了一些對實現有用的類型或宏。 從頭文件中獲取這些信息比複製它們要好。

1

這取決於您在頭文件中定義的內容。例如,如果您有一些類型或宏定義需要由sum.c函數和外部文件訪問,那麼您需要將它包含在任何地方。

您可能還希望每個源文件有兩個頭文件。一個私人的,只包括sum.c.這將包含sum.c函數所需的東西,其目的是提高代碼的可讀性。

第二個「公共」頭文件將包含sum.c函數調用者需要的東西。你不需要在sum.c文件中包含它。

0

源文件「sum.c」具有sum()函數的定義; 函數「sum()」的聲明包含在頭文件「sum.h」中。這有助於保持可讀性。

相關問題