2011-12-25 94 views
0

我創建了頭文件「foo.h」以及源文件「bar.c」,但似乎無法將bar.c導入foo.h.頭文件中的自定義類

這可能嗎?如果是這樣,請有人指出我的方向是正確的嗎?

+3

你'#頭文件包含在'.c'文件中,而不是相反。 (不清楚你的潛在問題是什麼。) - 哦,和C沒有類。 – Mat

+0

謝謝:)但是有什麼方法可以將自定義數據類型添加到.h文件中嗎?或者我將不得不創建一個結構? – malgca

+0

'struct's是在C中創建(適當的)自定義數據類型的唯一方法,是的,它們可以放在頭文件中。 (我仍然不明白你的問題是什麼。) – Mat

回答

3

你已經知道了它... .h文件存在以告訴其他程序.c文件包含什麼。 .c執行標題中列出的東西。

然後,當一個不同的程序想要使用一些你實現的東西時,他們會在你的頭文件中使用#include。編譯時,另一個名爲鏈接程序的程序也會運行。這將您用於實現的標題的功能連接起來。

0

基本上,雖然有些編譯器允許,但應該避免導入源文件。 關於數據類型,在頭文件中聲明它們是非常合理的。

+0

我打賭所有編譯器*必須*允許它。據我所知,頭文件和實現文件之間的區別只存在於程序員的腦海裏 - 對編譯器來說,都是C源文件。其中一些主要包含聲明,一些包含定義以及聲明(由於'#include'由預處理器完成,在編譯器看到代碼之前)。 – delnan

+0

@delnan,這很有道理...... – stdcall