现在的位置: 首页 > 综合 > 正文

编程规范

2017年10月05日 ⁄ 综合 ⁄ 共 4011字 ⁄ 字号 评论关闭

第一部分 C语言编程规范

在通信类软件中,C语言是常用的编程语言。在编写C语言程序的过程中,我们需要遵守的编程规范包括:

1. 程序的版式和注释

在C语言程序中,一般都包括了头文件(.h文件)和源文件(.c文件),它们的版式及注释如下:

第一,头文件的版式和注释。

头文件起到了一个辅助的作用,简要地反应出本程序的基本功能。头文件的内容包括:宏定义、结构体定义、函数的声明等。头文件的版式可采用以下的样式:

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

*版权所有 (C)2014,公司名称。

*

*文件名称:

*内容摘要:

*其它说明:

*当前版本:

*
者:

*完成日期:

*

*修改记录1 //修改历史记录,包括修改日期、版本号、修改人及修改内容等

* 修改日期:

* 号:

* 人:

* 修改内容:

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

#ifndef _XXX_H //
防止头文件被重复引用

#define _XXX_H

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

相关宏定义

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

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

相关结构体定义

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

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

本程序中出现的函数的声明

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

#endif

第二,实现文件的版式和注释。

源文件(.c)文件是程序的核心,所有的工作都是在里面完成的。该文件里面主要是一些函数的实现。源文件可采用以下的版式来书写:

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

*版权所有 (C)2014,公司名称。

*

*文件名称:

*内容摘要:

*其它说明:

*当前版本:

*
者:

*完成日期:

*

*修改记录1 //修改历史记录,包括修改日期、版本号、修改人及修改内容等

* 修改日期:

* 号:

* 人:

* 修改内容:

*

*修改记录2 //修改历史记录,包括修改日期、版本号、修改人及修改内容等

* 修改日期:

* 号:

* 人:

* 修改内容:

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

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

头文件引用

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

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

全局变量定义

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

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

函数实现

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

函数实现是程序的核心,函数头部的可采用如下的版式:

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

*功能描述:

*输入参数:

*输出参数:

*
值:

*其它说明:

*修改日期
版本号 修改人
修改内容

* ----------------------------------------------------------------------

* YYYYMMDD XXX Name YYY

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

2. 变量及函数的命名

本小节以下面的代码为例进行说明:

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

*版权所有 (C)2014,company name

*

*文件名称:example.c

*内容摘要:用于示范如何给变量和函数做规范的命名

*其它说明:无

*当前版本:V1.0

*
者:XXX

*完成日期:YYYYMMDD

*

*修改记录1 //修改历史记录,包括修改日期、版本号、修改人及修改内容等

* 修改日期:

* 号:

* 人:

* 修改内容:

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

#include <stdio.h>

float ProcessFactorial(INT32iInputValue); //
函数声明

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

*功能描述:主函数

*输入参数:无

*输出参数:无

*
值:无

*其它说明:无

*修改日期
版本号 修改人
修改内容

*--------------------------------------------------------------------

* YYYYMMDD V1.0 XXX
创建

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

int main()

{

int iInputValue = 0;

float fResult = 0.0;

printf("Please input an integer number: ");

scanf("%d", &iInputValue);

fResult = ProcessFactorial(iInputValue); //
调用求阶乘的函数

printf("%d!=%10.0f\n", iInputValue, fResult);

return 0;

}

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

*功能描述:求一个数的阶乘

*输入参数:iInputValue-输入值

*输出参数:无

*值:求阶乘后的结果

*其它说明:无

*修改日期
版本号 修改人
修改内容

*--------------------------------------------------------------------

* YYYYMMDD V1.0 XXX
创建

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

float ProcessFactorial(INT32 iInputValue)

{

float fResult = 0.0;

//先判断输入值是否小于0

if (iInputValue < 0)

{

printf("iInputValue <0, dataerror!");

return -1;

}

else

{

if (iInputValue == 0 || iInputValue == 1) // 01的阶乘是1

{

fResult = 1;

}

else

{

fResult =ProcessFactorial(iInputValue-1)*iInputValue; //执行递归调用

}

return(fResult);

}

}

有关变量及函数的命名,说明如下:

(1) 变量命名和函数命名应具备描述性,不要过度缩写。变量的命名应该使用名词,如fResult;函数的命名应该使用“命令性”动词,如ProcessFactorial。

(2) 不管是函数还是变量,它们的命名只有一个原则:让读者一眼就能够看出它们表达的意思。如ProcessFactorial函数,一看到它,就大概能够明白这是在求阶乘(如果你英语确实不好,那就另当别论了);iInputValue变量,表示输入值;fResult变量,表示结果值。我们要让代码自己来说话,而不是要作者向别人解释半天才行。

(3) 为了让读者看到一个变量就知道其类型,在变量的最前面,通常会有一个标识类型的字母。如iInputValue中的第一个字母“i”表示这是一个整型变量(“i”代表“int”),fResult中的第一个字母“f”表示这是一个浮点型变量(“f”代表“float”)。这样做,也是为了更进一步让读者对代码能够了然于心,能够很容易读懂,这样也省去了作者很多向别人解释的时间。

(4) 函数的功能要单一,不要设计多用途的函数;函数体的规模要小,将函数内的代码行数控制在项目中规定的范围之内。此外,要尽量避免函数带有“记忆”功能,相同的输入应该产生相同的输出。

(5) 始终要明白,我们第一是为人编写代码,其次才是计算机。如果只是计算机能够读懂的代码,不是好代码,也无法体现出一个编程人员的水平。


装载声明:原文地址

抱歉!评论已关闭.