模块化编程常规遵守的规则分享

1、每一个C文件对应一个同名的h文件。

2、函数的入口处对参数的合法性进行检查。

3、仅在源文件中使用的函数应该加static修饰。

4、不用或少用全局变量。

5、防止局部变量和全局变量重名。

6、没有被调用的变量要及时清除。

7、用宏定义表达式时,每个参数和表达式都要使用括号。

8、多次出现的数字应该使用宏、枚举或const 常量替代。

9、将复杂的复合表达式拆分成若干个简单表达式。

10、建议使用一组枚举值代替多个相关宏定义常量。 

示例: 

typedef enum 

{ 

    E_WRITE_REG = 0, 

    E_READ_REG = 1, 

    E_WRITE_RAM = 2, 

    E_READ_RAM = 3, 

    E_WRITE_CURVE = 4, 

    E_MAX, 

} E_ACT;

11、任意一个头文件均可独立编译,被包含使用时不用同时包含其它头文件。

12文件应当职责单一,尽量减少依赖头文件。

头文件应使用#ifndef/#define/#endif 防止被重复包含。 

示例:

#ifndef _XXX_H_

#define _ __XXX_H_#endif

13、模块包含的多个.c/.h 文件应放在一个文件夹下,模块名即为文件夹名。

不应该在.c 中通过 extern 的方式使用外部函数接口、全局变量,只能通过头文件。头文件是对应的.c文件对外的窗口,这一点很重要!

14、文件注释

/******************************************* 

Copyright (c) 2021 xxx Co.,Ltd. All rights reserved. 

FileName : 文件名

Author : 作者

Version : 版本

Date : 日期

Note : 注释

History : 历史修改记录

*******************************************/

15、函数注释

/******************************************* 

name : 函数名

description : 函数描述

Input : 输入

Output : 输出

Return : 返回

*******************************************/ 

16、头文件注释排列 

/* Includes ----------------------------*/ 

/* Public define -----------------------*/ 

/* Public typedef -----------------------*/ 

/* Public constants --------------------*/ 

/* Public variables ---------------------*/ 

/* Public function prototypes --------*/ 

17、 C 文件注释排列 

/* Includes ----------------------------*/ 

/* Private define ----------------------*/ 

/* Private typedef ----------------------*/ 

/* Private constants --------------------*/ 

/* Private variables ---------------------*/ 

/* Private function prototypes ----------*/ 

/* Public constants ----------------------*/ 

/* Public variables -----------------------*/
声明:本内容为作者独立观点,不代表电子星球立场。未经允许不得转载。授权事宜与稿件投诉,请联系:editor@netbroad.com
觉得内容不错的朋友,别忘了一键三连哦!
赞 3
收藏 3
关注 29
成为作者 赚取收益
全部留言
0/200
成为第一个和作者交流的人吧