久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5540|回復: 5
打印 上一主題 下一主題
收起左側

算是詳細了!單片機程序頭文件的定義、編寫及引用介紹

  [復制鏈接]
跳轉到指定樓層
樓主
成都控制板設計提供_算是詳細了!單片機程序頭文件的定義、編寫及引用介紹
SO技術分享之31
初聽迷茫不必慌,日出霧散路明亮。
本文介紹頭文件的定義、編寫、保存及引用等方面的內容,包括了一般的格式要求、例程等。
什么是頭文件?
頭文件在C語言程序開發中一般來說是必需的,一般在C程序的開頭就得引用頭文件。
頭文件作為一種包含功能函數、數據接口聲明的載體文件,主要用于保存程序的聲明,而定義文件用于保存程序的實現。
為什么要用頭文件?
如果沒有頭文件,那么定義只有就在C文件中進行,有幾個壞處:
->不便于閱讀。定義和功能代碼放在一起,可讀性變差;
->重復勞動,增加程序量。在各個C文件中,只要用到了就得重新定義一下,重復的代碼會變多等。
如需項目開發定制,可Q-Q: 2531二六3726。
頭文件編寫的一般格式要求是怎樣?

很多東西都有格式的,按照格式來做一般不會出錯。圖1為頭文件定義的一般結構。
開頭的#ifndef和最后的#endif需要成對出現,它的含義為假如沒有定義某文件的話,那么執行某些操作。在#ifndef和#endif之間可以編寫頭文件定義的代碼,如載入其他頭文件、引腳定義、子程序預定義等的。
下表給出了圖1中部分代碼的解釋。
表 1 圖1的要點解釋
  
#ifndef __XXX_H__
  
  
#endif
  
含義為假如沒有定義XXX.H,那么就執行某些操作。
  
Ifendif必須成對使用。
#define __ XXX _H__
定義XXX.H
#include <xxx.h>
載入相關的系統頭文件xxx.h
#include yyy.h
載入相關的自定義頭文件yyy.h
sbit x=p;
系統位定義。一般用于定義引腳,用x代替引腳p
#define  X Y
符號變量定義,X就表示Y值。Y一般為具體數值。XY之間有空格
void XX();
子程序預定義。在其他程序里載入了這個頭文件后,就能調用XX子程序。預定義后在對應的C文件里還得編寫具體的子程序代碼。
一個頭文件編寫的例子

有個例子,會有更加生動的理解。圖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。
本節完,精彩待續。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏16 分享淘帖 頂2 踩
回復

使用道具 舉報

沙發
ID:514317 發表于 2022-4-23 11:09 | 只看該作者
編寫功能多的程序  .h文件是必須的   
回復

使用道具 舉報

板凳
ID:57414 發表于 2022-4-23 14:17 | 只看該作者
對于不懂程序的我來說,受益匪淺;謝謝樓主!
回復

使用道具 舉報

地板
ID:1001848 發表于 2022-4-26 17:37 | 只看該作者
程序分塊寫可讀性會好很多,學到了學到了
回復

使用道具 舉報

5#
ID:759755 發表于 2022-4-26 19:37 | 只看該作者
假如沒定義,就定義它,不是太明白
回復

使用道具 舉報

6#
ID:1012735 發表于 2022-4-27 18:21 | 只看該作者
本帖最后由 hy47566398 于 2022-4-27 18:34 編輯

#ifndef __XXX_H__
這一句只是程序編譯時判斷是否定義了 __XXX_H__ 宏
也就是程序此時是否程序執行過了  #define __ XXX _H__ , 以防頭文件被重復包含定義了  __ XXX _H__  宏,表示程序執了這個頭文件代碼,程序跳到#endif處執行
如果沒有定義這個宏,執行#ifndef后的代碼
__ XXX _H__ 這個宏名稱可以隨便寫,跟文件名一點關系都沒有
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区在线免费观看 | 久久一久久| 欧美激情在线播放 | 91精品国产91久久久久青草 | 欧美成人精品激情在线观看 | 人妖av| 国产区在线视频 | 中文字幕精 | h片在线免费观看 | 天天干免费视频 | a中文在线视频 | 国产电影一区二区三区爱妃记 | 国产精品揄拍一区二区 | 狠狠干av | 国产日韩欧美中文字幕 | 久久久黄色 | 久久国内精品 | 午夜网 | 中文字幕亚洲视频 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 欧美专区日韩 | 欧美激情一区二区三级高清视频 | 你懂的国产 | 国产精品久久久久久久7电影 | 亚洲精品成人av久久 | 国产精品国产精品国产专区不蜜 | 天天综合91| 欧美一级片在线看 | 日韩黄a | 亚洲一区二区三区在线播放 | 日韩国产欧美在线观看 | 玖玖视频免费 | 在线播放中文字幕 | 国产黄色大片在线免费观看 | 亚洲不卡在线视频 | www久久爱 | 狠狠色综合久久丁香婷婷 | 日本精品一区二区三区在线观看 | 日本a v在线播放 | 一本大道久久a久久精二百 欧洲一区二区三区 | 91欧美 |