HI,首先跟各位聲明一下:#define Beirnie 劉園珍 //估計(jì)以后得一直用Bernie作為我的英文名了
去公司后特意取的一個(gè)名字,感覺還是蠻好聽的,好吧!切入正題,今天寫此日志并不是來教大家,只是來分享一點(diǎn)我在公司學(xué)到一點(diǎn)有用的東西,希望對(duì)各位有所幫助,當(dāng)然我會(huì)持續(xù)更新的,當(dāng)然內(nèi)容也會(huì)越來越深入的,今天的寫頭文件的方法只是第一步,相信你看了對(duì)你絕對(duì)會(huì)有幫助的:
第一,寫頭文件的作用一般都是為了定義變量,聲明函數(shù)等功能。那么在寫頭文件之前,我會(huì)首先定義一個(gè)自己專有的頭文件,定義類型簡(jiǎn)寫我們采用基本的頭文件編寫方式,如下:
#ifndef __config_h__ #define __config_h__ typedef signed char S8; typedef signed int S16; typedef signed long S32; typedef unsigned char U8; typedef unsigned int U16; typedef unsigned long U32; typedef volatile signed char VS8; typedef volatile signed int VS16; typedef volatile signed long VS32; typedef volatile unsigned char VU8; typedef volatile unsigned int VU16; typedef volatile unsigned long VU32; typedef U8 code FLASH; typedef union{ u8 byte; struct byte_field{ u8 b7:1; u8 b6:1; u8 b5:1; u8 b4:1; u8 b3:1; u8 b2:1; u8 b1:1; u8 b0:1; }bit; }BYTE_TYPE; typedef union{ u16 word; u8 byte[2]; struct word_field{ u8 b17:1; u8 b16:1; u8 b15:1; u8 b14:1; u8 b13:1; u8 b12:1; u8 b11:1; u8 b10:1; u8 b7:1; u8 b6:1; u8 b5:1; u8 b4:1; u8 b3:1; u8 b2:1; u8 b1:1; u8 b0:1; }bit; }WORD_TYPE; typedef enum { FALSE = 0, TRUE = !FALSE } BOOL; #define False FALSE #define True TRUE #define Ok 1 #define UnOk 0 #define Fail 0 #define Success 1 #endif 第二,接著要講的才是真正怎么寫頭文件的方法 在原函數(shù)C文件中定義: #define _DEF 在h文件中就該這樣寫: #ifdef _DEF #define DEF_EXT #else #define DEF_EXT extern #endif #include "myconfig.h" DEF_EXT BYTE_TYPE _sFlago; #define sFlag0 _sFlag0.byte #define PwrFlag _sFlag0.bit.b7 DEF_EXT WORD_TYPE _sFlag1; #define sFlag1 _sFlag1.word #define sFlag1_H _sFlag1.byte[0] #define sFlag1_L _sFlag1.byte[1] #define PwrFlag_last _sFlag1.bit.b17 DEF_EXT u8 Bernie_Cool; DEF_EXT void Bernie(void);
該頭文件就編寫完了,為什么要這樣寫呢?
這是避免了在頭文件重復(fù)調(diào)用所帶來的編譯出錯(cuò),并且可以省掉函數(shù)和變量使用前的單獨(dú)聲明,省時(shí)省力。
例如有多個(gè)文件,都是按以上頭文件的編寫格式,我們便可以這樣寫一個(gè)File.h的頭文件:
#include “0.h”
#include “1.h”
#include “2.h”
#include “3.h”
而在以后的C文件中只要包含file.h文件就搞定了,是不是覺得很方便呢?
這樣的編寫方式在實(shí)際項(xiàng)目編寫中是非常方便的,其中還有對(duì)位的定義,高低字節(jié)的定義,希望對(duì)大家有所幫助……