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

萬事開頭難,51單片機的頭文件怎么寫?
評論