2022年买电子元器件,上唯样商城

Bernie教你写完美头文件

Bernie教你写完美头文件

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文件就搞定了,是不是觉得很方便呢?


这样的编写方式在实际项目编写中是非常方便的,其中还有对位的定义,高低字节的定义,希望对大家有所帮助……


唯样商城-电子元器件采购网(www.oneyac.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 唯样自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
THE END
免责声明:本文为网友转载文章,转载此文目的在于传递更多信息,版权归原作者所有,与平台无关。本文所用视频、图片、文字如涉及作品版权问题,请电话或者邮箱(marketing@oneyac.com)联系小编进行侵删。
资讯排行榜
  • 日排行
  • 周排行
  • 月排行
原厂授权品牌

更多授权品牌 >>

热卖元器件
热门标签