眾里尋他千百度,默然回首還是看不懂你的代碼!
我相信,對于初學單片機編程或其他語言編程的朋友來說,剛開始我們編程時總喜歡把所有的代碼都寫在一個文件中。
(當然如果你是絕世天才那就另當別論了,哈哈)。其實我也如此,剛開始我就想,將所有的代碼都寫在一個文件中那該多
方便,打開一個文件都可以看清。當然,起初我們很容易看明白,因為你我都知道,咱寫的代碼只有那寥寥幾行,倒著背都
能背下來。但當后來我們寫的代碼越來越多時,我們往往苦于閱讀自己的代碼。
因此,我們可以將一個程序寫在多個文件中(即以.c為后綴的文件中)。這時聰明的你就會問了,那么我寫了了這么多文
件,最后只通過一個按鈕編譯,生成HEX這個家伙,那么各文件又是怎樣聯系一起的呢?(啊,說了這么多,終于說到點子
上了,ZC一下,看來我的語言表達能力的確得練練)這就是頭文件存在的價值呀!
好了,說重點。那么頭文件中都改裝些什么呢?簡單來說就是 預處理+引腳定義+函數名。再多的漢字也表達不了我的意
思,還是代碼說話吧。/****下面是一個關于GPS模塊的程序頭文件,文件名:GPS.h****/#ifndef _GPS_H_ #define _GPS_H_ //_GPS_H_與文件名一致,只是改為大寫 #define uint unsigned int #define uchar unsigned char typedef struct{ //你知道結構體是干啥的嗎?裝幾個變量int month;int year;int data;int hour;int minute;int second; //這幾個變量用來"裝"GPS接收到的時間}dataTime; ..... //后面仍是一個結構體,類似,所以我想偷一下懶用。。。代替 /******下面是一系列函數名,再GPS.C中編寫函數*******/ void gpsInit(void); //GPS初始化程序,gpsInit為函數名我比較喜歡用匈牙利/駝峰命名法,強 烈推薦 int gpsRmcParse(char *line, gpsInfo *gps); //RMC為接收到的數據頭 int gpsGgaParse(char *line, gpsInfo *gps); int gpsGsvParse(char *line, gpsInfo *gps); void integerToString(int x, char *str); //整型轉字符串 #endif //程序結束
上面就是這個頭文件,我們可以就看到它的格式就是這樣的#ifndef ......#define............#endif
如果使用的什么模塊要接到I/O口,就在頭文件中寫
#include
現在,頭文件寫完了,那么接下來的工作就簡單多了,將你的頭文件加載到所要使用該頭文件中內容的C文件中。
-
51單片機
+關注
關注
274文章
5705瀏覽量
124328 -
頭文件
+關注
關注
0文章
25瀏覽量
9905
原文標題:51單片機的頭文件究竟該如何寫?
文章出處:【微信號:wujianying_danpianji,微信公眾號:單片機精講吳鑒鷹】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
萬事開頭難,開關電源設計就應該這樣一步一步來
![<b class='flag-5'>萬事開頭難</b>,開關電源設計就應該這樣一步一步來](https://file1.elecfans.com//web2/M00/A7/23/wKgZomUMQpmAa5SmAASZAAkjW2Q379.png)
求高人指點
從0開始學習51單片機第一集
單片機無線通信模塊開發與應用
51基礎怎么入門pic
【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】萬事開頭難,先點個LED燈
學習單片機的心得體會(轉載)精選資料推薦
如何學習單片機
怎樣使用固件庫來進行點燈呢
STM32白話文教程(一)固件庫點燈
![STM32白話文教程(一)固件庫點燈](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論