0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是頭文件?頭文件編寫的一般格式要求是怎樣?

冬至子 ? 來源:沙鷗筆記 ? 作者:沙鷗筆記 ? 2023-11-08 16:25 ? 次閱讀

本文介紹頭文件的定義、編寫、保存及引用等方面的內(nèi)容,包括了一般的格式要求、例程等。

什么是頭文件?

頭文件在C語言程序開發(fā)中一般來說是必需的,一般在C程序的開頭就得引用頭文件。

頭文件作為一種包含功能函數(shù)、數(shù)據(jù)接口聲明的載體文件,主要用于保存程序的聲明,而定義文件用于保存程序的實現(xiàn)。

為什么要用頭文件?

如果沒有頭文件,那么定義只有就在C文件中進(jìn)行,有幾個壞處:

->不便于閱讀。定義和功能代碼放在一起,可讀性變差;

->重復(fù)勞動,增加程序量。在各個C文件中,只要用到了就得重新定義一下,重復(fù)的代碼會變多等。

如需項目開發(fā)定制,可Q-Q: 2531二六3726。

頭文件編寫的一般格式要求是怎樣?

很多東西都有格式的,按照格式來做一般不會出錯。圖 1為頭文件定義的一般結(jié)構(gòu)。

開頭的#ifndef和最后的#endif需要成對出現(xiàn),它的含義為假如沒有定義某文件的話,那么執(zhí)行某些操作。在#ifndef和#endif之間可以編寫頭文件定義的代碼,如載入其他頭文件、引腳定義、子程序預(yù)定義等的。

下表給出了圖 1中部分代碼的解釋。

表 1 圖1的要點解釋

一個頭文件編寫的例子

有個例子,會有更加生動的理解。圖 2為一個頭文件定義的例子,頭文件的名字位relaycontrol.h,這個頭文件里包含了載入其他頭文件、引腳定義、符號變量定義、子程序預(yù)定義等內(nèi)容。

頭文件的保存方法

保存頭文件一般有2種方法:

(1)、在keil中保存H文件:如例,假如在keil中新建了H文件,編寫完頭文件代碼后,點擊保存按鈕,命名后保存在電腦硬盤(與引用它的C文件在同一個文件夾)里即可,本例中保存的頭文件為relaycontrol.h。

(2)、在電腦里新建一個TXT文件,再改擴(kuò)展名為.h:在電腦硬盤(與引用它的C文件在同一個文件夾)中新建一個txt文件,寫入頭文件代碼,保存,并改擴(kuò)展名為.h。本例中將這個txt文件名及擴(kuò)展名改為relaycontrol.h。

怎么在C程序中引用頭文件?

在C程序中,頭文件需要先引用后才能使用,一般引用頭文件放在程序的開頭位置。

在C文件中引用頭文件的方法很簡單,就是在程序中用“#include”指令把相應(yīng)的頭文件載入就行了。

引用后,在這個C文件中就能使用頭文件里已經(jīng)定義的內(nèi)容,如定義的引腳、符號變量和子程序等。

是否需要幫助?

提供單片機(jī)PLC、電路板、控制器/箱、儀器儀表、機(jī)電設(shè)備或系統(tǒng)、自動化、工控、傳感、數(shù)據(jù)采集、自控系統(tǒng)、控制系統(tǒng),軟件、APP開發(fā)設(shè)計定制訂做。如有項目需要,可Q:2531二六3726。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7594

    瀏覽量

    135850
  • 頭文件
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    9840
收藏 人收藏

    評論

    相關(guān)推薦

    可重復(fù)頭文件的固定結(jié)構(gòu)

    年輕人,你可曾記得,在修習(xí)C語言的時候,見過這樣的字句:在創(chuàng)建頭文件的時候,定要加入保護(hù)宏。
    的頭像 發(fā)表于 08-29 10:23 ?285次閱讀
    可重復(fù)<b class='flag-5'>頭文件</b>的固定結(jié)構(gòu)

    編譯components文件夾內(nèi)容引入的頭文件不對怎么處理?

    最近在移植LVGL,需要自己寫RGB驅(qū)動 我把LVGL放在components文件夾中,但編譯的時候提示缺少esp_lcd下頭文件的引用 仔細(xì)找了下發(fā)現(xiàn),編譯components內(nèi)容的時候只引入
    發(fā)表于 06-17 07:35

    引用外部文件夾中的頭文件時,如何讓VSCODE不提示波浪線錯誤?

    各位好: 我將常用的組件放在項目文件夾以外的某個地方,嘗試在項目內(nèi)引用此文件夾下的組件,失敗,在代碼中無法include相關(guān)頭文件。我在main組件中也添加了requires,任然失敗。 另外,在VSCODE中,當(dāng)我引用外部
    發(fā)表于 06-07 08:19

    為什么找不到esp_event_legacy.h頭文件?

    替代esp_event_legacy.h這個頭文件呢?謝謝 我再GITHUB上看到里面有些 system_event_t和system_event_info_t等類型的定義,目前就是找不到這些結(jié)構(gòu)體或枚舉類型的定義,但是V5.0下又沒有這個
    發(fā)表于 06-07 08:03

    components包含頭文件錯誤是怎么回事?

    我新建了個工程,添加了個BLE組件,現(xiàn)在我在BLE組件的頭文件中包含了如下文件Code: Select all #include \"api/esp_gatt_common_api
    發(fā)表于 06-06 07:21

    FX3工程導(dǎo)入后頭文件找不到是為什么?如何添加頭文件路徑?

    在網(wǎng)上參考別人的工程項目,但是載入進(jìn)去之后發(fā)現(xiàn)它的頭文件都找不到,應(yīng)該如何添加頭文件路徑?
    發(fā)表于 05-27 07:53

    STM8L101F3的頭文件沒有,可以用STM8S103F的頭文件替代嗎?兩者之間有區(qū)別嗎?

    STM8L101F3的頭文件沒有,可以用STM8S103F的頭文件替代嗎?兩者之間有區(qū)別嗎?
    發(fā)表于 05-17 06:01

    stm8s103f.h頭文件在哪下載?

    我只懂用庫編程,不用庫反而不會。網(wǎng)上下載別人的程序,找不到stm8s103f.h這樣的頭文件。請問這樣的頭文件在哪可以找到?或者誰能給我這樣的頭文件,謝謝!
    發(fā)表于 05-14 06:10

    請問頭文件能不能定義變量呢?

    最近在編譯個工程的時候,突然遇到了變量重復(fù)定義的問題,根據(jù)提示打開這幾個 C 文件,并沒有發(fā)現(xiàn)定義變量的地方。后來再找找,原來變量定義在了頭文件里面。
    的頭像 發(fā)表于 04-28 09:33 ?997次閱讀

    請問為什么庫函數(shù)頭文件和寄存器頭文件不可共用?

    CLK_CKDIVR=0x01;可是這么編程后就報錯iostm8s208mb.h頭文件缺少括號,不知道為何庫函數(shù)頭文件與寄存器頭文件起時哪構(gòu)成語法錯誤了;請問我這個把庫函數(shù)
    發(fā)表于 04-28 06:22

    如何在Cubemx中添加所有的外設(shè)頭文件?

    cubemx是個圖形生成代碼的軟件,可以很好的提高寫代碼的效率,減少時間。但同時也有個很大的問題:每次設(shè)置完后生成的代碼,只包含設(shè)置的外設(shè)的頭文件,如果想要添加其他外設(shè)的代碼,可能會因此報錯
    發(fā)表于 04-01 07:46

    C語言中的頭文件

    #include 指令會指示 C 預(yù)處理器瀏覽指定的文件作為輸入。預(yù)處理器的輸出包含了已經(jīng)生成的輸出,被引用文件生成的輸出以及 #include 指令之后的文本輸出。
    發(fā)表于 02-23 14:06 ?395次閱讀

    CY8CKIT-062-WiFi-BT找不到頭文件,編輯不了代碼怎么處理?

    嗎?如果是因為頭文件缺失導(dǎo)致的話,那我可以直接把樣例項目中的GUI.h復(fù)制到自己創(chuàng)建的項目的文件夾下嗎?可是我不太清楚放在文件夾的具體位置,可以幫我指明下嗎? 另外,我在運行了項目
    發(fā)表于 01-25 06:48

    在ADUCM360_project.c文件里面為什么添加DioLid.h頭文件會報錯?如何正確添加自己編寫頭文件

    在ADUCM360_project.c文件里面為什么添加DioLid.h頭文件會報錯?怎么正確添加自己編寫頭文件?
    發(fā)表于 01-11 06:09

    C語言必備知識頭文件包含

    頭文件在C語言中是非常重要的組成部分。
    的頭像 發(fā)表于 12-01 18:20 ?1774次閱讀