结构化程序设计方法
自顶向下;逐步细化;模块化设计;结构化编码;
一、关于模块化编程的文件组织
所谓模块,实质上就是一个.c文件和一个.h文件的结合。
.c文件应该包含的内容:变量的定义与函数的实现;
同时,每个.c文件都配有一个.h文件,头文件的名称与相应的模块名相同,“.h”中是对于该模块接口的声明,它就是一份说明书,内容为:【extern变量声明】和【函数的声明】、【#define常数】、【结构体的定义】,其作用就是该模块对外部提供的接口函数或者接口变量,其内部不应该包含任何实质性的代码,我们可以将.h文件看成是.c文件的配置文件,而将.c文件理解为一个模块,也就是一个黑匣子。
一般而言,需要为整个工程建立一个所有的文件都要共同使用的头文件main.h,当转换平台时,这是要进行修改的。里面包含一些全局宏定义和系统头文件,比如typedef unsigned char uint8_t和#include 。
二、.h文
复制代码
ifndef __FN_FILENAME_H
define __FN_FILENAME_H
include "xxx.h"
/**Macro Define Section**/
define MAX_TIMER_OUT (4)
/**Struct Define Section**/
typedef struct studentTAG
{
u16 ID;
char name;
}stu_st, stu_pst;
/**Global variables declaration**/
extern int i;
/**Prototype Declare Section**/
extern u16 GetScanTimes(void);
……
三、.c文件
/**Copyright(c)**
XXX.Ltd
** //代码效果参考:http://www.zidongmutanji.com/bxxx/506000.html
------File Info----------------------------------------------------- File Name: xxx.c
Latest modified Date: xxx-xx-xx Latest Version: 1.0
** Description:
Created By: xxx Created date: - -
Version: 1.0 Descriptions:
Modified by: Modified date:
Version: Description:
*/
/============= I N C L U D E S =============/
#include "xxx.h"
/*============= D A T A =============*/
/*
** Variable Define Section
** (global variables)
*/
unsigned int MD_guiHoldBreathStatus;
** (File Static variables)
static unsigned int nuiNaviSysStatus;
/*============= C O D E =============*/
** Function Prototype section
** (static-scoped functions)
static void AddSegmentHdrNode(
ADI_CONT_SEGMENT_HDR *pSegmentListHdr,
ADI_CONT_SEGMENT_HDR *pSegmentListTempHdr
);
** Function Definition section
/******************END FILE******************/