本文介紹頭文件的定義、編寫(xiě)、保存及引用等方面的內(nèi)容,包括了一般的格式要求、例程等。
什么是頭文件?
頭文件在C語(yǔ)言程序開(kāi)發(fā)中一般來(lái)說(shuō)是必需的,一般在C程序的開(kāi)頭就得引用頭文件。
頭文件作為一種包含功能函數(shù)、數(shù)據(jù)接口聲明的載體文件,主要用于保存程序的聲明,而定義文件用于保存程序的實(shí)現(xiàn)。
為什么要用頭文件?
如果沒(méi)有頭文件,那么定義只有就在C文件中進(jìn)行,有幾個(gè)壞處:
->不便于閱讀。定義和功能代碼放在一起,可讀性變差;
->重復(fù)勞動(dòng),增加程序量。在各個(gè)C文件中,只要用到了就得重新定義一下,重復(fù)的代碼會(huì)變多等。
如需項(xiàng)目開(kāi)發(fā)定制,可Q-Q: 2531二六3726。
頭文件編寫(xiě)的一般格式要求是怎樣?

很多東西都有格式的,按照格式來(lái)做一般不會(huì)出錯(cuò)。圖 1為頭文件定義的一般結(jié)構(gòu)。
開(kāi)頭的#ifndef和最后的#endif需要成對(duì)出現(xiàn),它的含義為假如沒(méi)有定義某文件的話(huà),那么執(zhí)行某些操作。在#ifndef和#endif之間可以編寫(xiě)頭文件定義的代碼,如載入其他頭文件、引腳定義、子程序預(yù)定義等的。
下表給出了圖 1中部分代碼的解釋。
表 1 圖1的要點(diǎn)解釋

一個(gè)頭文件編寫(xiě)的例子

有個(gè)例子,會(huì)有更加生動(dòng)的理解。圖 2為一個(gè)頭文件定義的例子,頭文件的名字位relaycontrol.h,這個(gè)頭文件里包含了載入其他頭文件、引腳定義、符號(hào)變量定義、子程序預(yù)定義等內(nèi)容。
頭文件的保存方法
保存頭文件一般有2種方法:
(1)、在keil中保存H文件:如例,假如在keil中新建了H文件,編寫(xiě)完頭文件代碼后,點(diǎn)擊保存按鈕,命名后保存在電腦硬盤(pán)(與引用它的C文件在同一個(gè)文件夾)里即可,本例中保存的頭文件為relaycontrol.h。
(2)、在電腦里新建一個(gè)TXT文件,再改擴(kuò)展名為.h:在電腦硬盤(pán)(與引用它的C文件在同一個(gè)文件夾)中新建一個(gè)txt文件,寫(xiě)入頭文件代碼,保存,并改擴(kuò)展名為.h。本例中將這個(gè)txt文件名及擴(kuò)展名改為relaycontrol.h。
怎么在C程序中引用頭文件?


在C程序中,頭文件需要先引用后才能使用,一般引用頭文件放在程序的開(kāi)頭位置。
在C文件中引用頭文件的方法很簡(jiǎn)單,就是在程序中用“#include”指令把相應(yīng)的頭文件載入就行了。
引用后,在這個(gè)C文件中就能使用頭文件里已經(jīng)定義的內(nèi)容,如定義的引腳、符號(hào)變量和子程序等。
是否需要幫助?
提供單片機(jī)、PLC、電路板、控制器/箱、儀器儀表、機(jī)電設(shè)備或系統(tǒng)、自動(dòng)化、工控、傳感、數(shù)據(jù)采集、自控系統(tǒng)、控制系統(tǒng),軟件、APP開(kāi)發(fā)設(shè)計(jì)定制訂做。如有項(xiàng)目需要,可Q:2531二六3726。
-
C語(yǔ)言
+關(guān)注
關(guān)注
183文章
7642瀏覽量
144528 -
頭文件
+關(guān)注
關(guān)注
0文章
26瀏覽量
10280
發(fā)布評(píng)論請(qǐng)先 登錄
VSCode + ESP-IDF環(huán)境下給ESP32-S3項(xiàng)目添加頭文件
RISC-V GCC編譯,如何添加math.h頭文件?
頭文件保護(hù)失效,提示變量重復(fù)包含,是什么原因?qū)е碌模?/a>
RT-thread源碼scons --dist --target=vsc;STM32L475-pandora沒(méi)有STM32L4xx.h頭文件是怎么回事?
STM32CUBEIDE使用UCOS的時(shí)候,頭文件路徑已經(jīng)添加了,依舊提示未找到路徑怎么解決?
cypress3014在頭文件修改編譯后,時(shí)間不變,這樣頭文件的程序有被執(zhí)行嗎?
使用OUT_REG3_VALID觸發(fā)條件時(shí),GPIF II Designer生成無(wú)效的頭文件怎么解決?
頭文件類(lèi)型定義
在TouchFX Designer中運(yùn)行工程,提示頭文件找不到,為什么?
STM32CubeMX生成代碼就會(huì)覆蓋CMakeLists.txt文件,怎么解決?
EE-110:ELF和DWARF文件格式快速入門(mén)

什么是頭文件?頭文件編寫(xiě)的一般格式要求是怎樣?
評(píng)論