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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

Bernie教你寫完美頭文件

作者:佚名   來源:本站原創   點擊數:  更新時間:2011年08月02日   【字體:

  HI,首先跟各位聲明一下:#define Beirnie  劉園珍  //估計以后得一直用Bernie作為我的英文名了
去公司后特意取的一個名字,感覺還是蠻好聽的,好吧!切入正題,今天寫此日志并不是來教大家,只是來分享一點我在公司學到一點有用的東西,希望對各位有所幫助,當然我會持續更新的,當然內容也會越來越深入的,今天的寫頭文件的方法只是第一步,相信你看了對你絕對會有幫助的:
    第一,寫頭文件的作用一般都是為了定義變量,聲明函數等功能。那么在寫頭文件之前,我會首先定義一個自己專有的頭文件,定義類型簡寫我們采用基本的頭文件編寫方式,如下:
 

#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

第二,接著要講的才是真正怎么寫頭文件的方法
在原函數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);

該頭文件就編寫完了,為什么要這樣寫呢?


這是避免了在頭文件重復調用所帶來的編譯出錯,并且可以省掉函數和變量使用前的單獨聲明,省時省力。


例如有多個文件,都是按以上頭文件的編寫格式,我們便可以這樣寫一個File.h的頭文件:

#include “0.h”
#include “1.h”
#include “2.h”
#include “3.h”

而在以后的C文件中只要包含file.h文件就搞定了,是不是覺得很方便呢?


這樣的編寫方式在實際項目編寫中是非常方便的,其中還有對位的定義,高低字節的定義,希望對大家有所幫助……
 

關閉窗口

相關文章

主站蜘蛛池模板: 一区二区在线免费播放 | 永久免费av | 99成人精品| 免费a国产 | 欧美成年人视频在线观看 | 毛片视频网站 | 色噜噜亚洲男人的天堂 | 久久69精品久久久久久国产越南 | 亚洲欧洲色视频 | 国产成人精品午夜视频免费 | 国产精品久久久久久久久久久免费看 | 91精品国产91久久久久久 | 自拍偷拍视频网 | 99久久精品国产一区二区三区 | 成人av在线网站 | 精品亚洲一区二区三区四区五区高 | 久久日韩粉嫩一区二区三区 | 久久久久久久久久久丰满 | 久久国 | 久久电影一区 | 精品无码久久久久国产 | 国产高清一二三区 | 日韩一区二区三区av | 成人免费一区二区三区视频网站 | 色精品视频 | 麻豆国产一区二区三区四区 | 亚洲毛片 | 范冰冰一级做a爰片久久毛片 | 中文久久 | 五月激情综合 | 欧美午夜精品理论片a级按摩 | 91视频a| 欧州一区二区 | 99视频在线免费观看 | 人人草人人干 | 97国产在线观看 | 国产福利91精品一区二区三区 | 一区在线观看 | 免费三级网站 | 精品国产一区二区 | 久久99深爱久久99精品 |