zoukankan      html  css  js  c++  java
  • C语言的结构化编程

    结构化程序设计方法

      自顶向下;逐步细化;模块化设计;结构化编码;

    一、关于模块化编程的文件组织

      所谓模块,实质上就是一个.c文件和一个.h文件的结合。

      .c文件应该包含的内容:变量的定义与函数的实现;

      同时,每个.c文件都配有一个.h文件,头文件的名称与相应的模块名相同,.h”中是对于该模块接口的声明,它就是一份说明书,内容为:【extern变量声明】和【函数的声明】、【#define常数】、【结构体的定义】,其作用就是该模块对外部提供的接口函数或者接口变量,其内部不应该包含任何实质性的代码,我们可以将.h文件看成是.c文件的配置文件,而将.c文件理解为一个模块,也就是一个黑匣子。

       一般而言,需要为整个工程建立一个所有的文件都要共同使用的头文件main.h,当转换平台时,这是要进行修改的。里面包含一些全局宏定义和系统头文件,比如typedef unsigned char uint8_t#include <regs.h>

                  

    二、.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.cnblogs.com/BitArt/ 
    **
    **------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;
        
        /*
        **  Variable Define Section
        **  (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******************/
  • 相关阅读:
    无旋转Treap简介
    bzoj 4318 OSU!
    bzoj 1419 Red is good
    bzoj 4008 亚瑟王
    bzoj 1014 火星人prefix
    更多的莫队
    bzoj 3489 A simple rmq problem
    洛谷 2056 采花
    NOIP 2017 游(划水)记
    UVa 11997 K Smallest Sums
  • 原文地址:https://www.cnblogs.com/BitArt/p/2783690.html
Copyright © 2011-2022 走看看