我希望能夠創造的頭文件功能,我可以在我的C程序的一個#包括集合。如何創建C頭文件
如何創建C頭文件
回答
- 打開文本編輯器
- 創建一個名爲whatever.h
- 把你的函數原型在它
做了新的文件。
例whatever.h
#ifndef WHATEVER_H_INCLUDED
#define WHATEVER_H_INCLUDED
int f(int a);
#endif
注:包括防護裝置(預處理命令)加入感謝盧克。它們避免在同一編譯中包含相同的頭文件兩次。另一種可能性(在評論中也提到)是添加#pragma once
,但不保證在每個編譯器上都支持。
例whatever.c
#include "whatever.h"
int f(int a) { return a + 1; }
然後你就可以包括「whatever.h」到任何其他.c文件,並與whatever.c的目標文件鏈接。
像這樣:
sample.c文件
#include "whatever.h"
int main(int argc, char **argv)
{
printf("%d\n", f(2)); /* prints 3 */
return 0;
}
要編譯它(如果你使用GCC):
$ gcc -c whatever.c -o whatever.o
$ gcc -c sample.c -o sample.o
要鏈接的文件,以創建一個可執行文件:
$ gcc sample.o whatever.o -o sample
您可以測試樣品:
$ ./sample
3
$
你可能想提到頭衛隊 – luke 2010-05-14 01:48:56
@盧克:非常感謝。不知道標頭警衛是什麼。現在去谷歌。再次感謝。 – 2010-05-14 01:50:06
@luke:哦!我懂了。好點子。去添加它們。 – 2010-05-14 01:50:49
頭文件可以包含任何有效的C代碼,因爲它們通過在編譯之前預處理器注入編譯單元。
如果頭文件包含一個函數,並且包含多個.c
文件,則每個.c
文件都將獲得該函數的副本併爲其創建一個符號。鏈接器會抱怨重複的符號。
技術上可以在頭文件中創建static
函數以包含在多個.c
文件中。雖然通常沒有這樣做,因爲它違反了在.c
文件中找到代碼的約定,並且在.h
文件中找到了聲明。
有關更多說明,請參見C/C++: Static function in header file, what does it mean?中的討論。
- 1. 頭文件(.h)中創建C編程
- 2. 在C++中創建頭文件
- 3. 錯誤而在C++創建頭文件
- 4. 從c頭創建mod文件
- 5. 關於C頭文件創建錯誤++
- 6. 如何創建手動php頭文件?
- 7. 如何在Xcode 3.1.2的C++項目中創建頭文件?
- 8. 如何在C#中從頭開始創建DBF文件?
- 9. 如何使用Javah工具創建C頭文件
- 10. 如何使用頭文件創建簡單的C庫
- 11. 如何在C++中創建一個bmp頭文件?
- 12. 從Gtk C++源文件和頭文件創建Glade XML文件
- 13. Qt創建者頭文件
- 14. 如何創建包含兩個頭文件的單個C源文件?
- 15. 在visual c中創建頭文件(.h)和.lib文件#
- 16. 爲頭創建的源文件文件
- 17. GIMP中頭文件像素的解釋創建XPM圖像的C頭文件
- 18. 如何從C#DLL創建.lib文件?
- 19. 如何使用c#創建.dbf文件?
- 20. 如何用C創建appdata文件夾#
- 21. 如何創建文件夾(C#編程)
- 22. 如何用C#創建doc 2003文件
- 23. 如何創建libsvm的C文件
- 24. C語言 - 如何創建PostScript文件
- 25. 如何在Visual C++中創建文件
- 26. 如何從C++文件創建對象?
- 27. 如何在C#中創建EPS文件?
- 28. 如何在c#webapi中創建頭文件/正文驗證過濾器
- 29. C/C++如何訪問頭文件?
- 30. 如何在C++中創建緩衝區來創建新文件
帶文本編輯器? – stefanB 2010-05-14 01:45:53
如果我正確地遵循,你想要創建一個類似於標準C庫的庫,這樣你就可以包含一個帶有函數定義的頭文件,然後在構建最終的可執行文件時與該庫鏈接。是對的嗎? – 2010-05-14 02:06:04
是的,你是對的。 – user340838 2010-05-14 02:07:36