吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

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

什么是頭文件?

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

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

為什么要用頭文件?

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

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

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

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

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

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

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

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

表 1 圖1的要點解釋

一個頭文件編寫的例子

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

頭文件的保存方法

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

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

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

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

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

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

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

是否需要幫助?

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137720
  • 頭文件
    +關注

    關注

    0

    文章

    25

    瀏覽量

    9901
收藏 人收藏

    評論

    相關推薦

    ADS114S06 Demo代碼中找不到頭文件是怎么回事?

    ADS114S06提供的Demo軟件中沒有找到相應的頭文件,搜索也是搜索不到相應的頭文件的,個個文件里面看也沒有找到。我準備要移植到項目里面了,但是這些沒有
    發表于 11-28 06:41

    C語言中的頭文件能不能重復包含

    "); return 0;} 我們先來編譯看下,好像沒有任何問題。 root@Turbo:~# gcc test.c -o test root@Turbo:~# 同一個頭文件,隨便包含多少次,都不會有問題,主要是這
    的頭像 發表于 11-26 17:19 ?231次閱讀

    可重復頭文件的固定結構

    年輕人,你可曾記得,在修習C語言的時候,見過這樣的字句:在創建頭文件的時候,定要加入保護宏。
    的頭像 發表于 08-29 10:23 ?404次閱讀
    可重復<b class='flag-5'>頭文件</b>的固定結構

    編譯components文件夾內容引入的頭文件不對怎么處理?

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

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

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

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

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

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

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

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

    在網上參考別人的工程項目,但是載入進去之后發現它的頭文件都找不到,應該如何添加頭文件路徑?
    發表于 05-27 07:53

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

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

    stm8s103f.h頭文件在哪下載?

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

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

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

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

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

    SDK5開源庫高頻注入的頭文件怎么沒有?

    ST SDK5開源庫,高頻注入的頭文件怎么沒有?只有。c文件。怎么能夠獲得?
    發表于 04-17 07:37

    如何在Cubemx中添加所有的外設頭文件

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

    C語言中的頭文件

    #include 指令會指示 C 預處理器瀏覽指定的文件作為輸入。預處理器的輸出包含了已經生成的輸出,被引用文件生成的輸出以及 #include 指令之后的文本輸出。
    發表于 02-23 14:06 ?522次閱讀
    澳门百家乐官网海星王| 新梦想百家乐官网的玩法技巧和规则 | 百家乐官网真人游戏| 百家乐官网怎样玩的| 百家乐官网系列抢庄龙| 百家乐官网游戏台| 百家乐官网境外赌博| 云顶国际| 八大胜开户| 大丰收娱乐城开户| 最好的棋牌游戏平台| 全讯网五湖四海| 威尼斯人娱乐城代理| 百家乐图形的秘密破解| 闲和庄百家乐的玩法技巧和规则 | 网上百家乐开户送现金| 易胜博百家乐下载| 百家乐发牌的介绍| 百家乐三号的赢法| 川宜百家乐破解版| 优博百家乐现金网| 百家乐赢钱战略| 百家乐免費游戏| 百家乐输一压二| 沙龙百家乐怎申请| 百家乐全透明牌靴| 真钱百家乐公司哪个好| 百家乐技巧心得| 澳门百家乐一把决战输赢| 帝王百家乐新足球平台| 百家乐赢钱公式冯耕| 百家乐最新庄闲投注法| 百家乐桌子北京| 百家乐赌博策略论坛| 百家乐2号技术| 至尊百家乐吕文婉| 洛克百家乐的玩法技巧和规则| 澳门百家乐会出千吗| 破解百家乐真人游戏| 三亚百家乐的玩法技巧和规则 | 单机百家乐官网在线小游戏|