Welcome

首页 / 软件开发 / 数据结构与算法 / 提前认识软件开发(7) 变量及函数的命名

提前认识软件开发(7) 变量及函数的命名2015-01-24最近看了一则笑话,大意是路人甲到电信营业厅去交电话费,给营业员说要充50块钱,那个营业员问了一句“How much?”。路人甲心想现在社会真的与以往不同了,连一般的营业员都开始流行讲英语了,于是便以不是很流利的口语说了一句“Fifty YUAN”。那个营业员一头雾水地看着他,说道“电话号码多少?”路人甲这才恍然大悟,原来是问我电话号码多少,而非多少钱。

也许这个笑话本身并不好笑,但却说明了一个道理:我们要尽量准确地表达自己的想法,不要让别人感到疑惑。这个原理同样适用于软件开发过程,适用于编写代码的过程。

我们在编程过程中,要保证自己写的每一行语句都表意准确,让别人一看就能够明白,特别是对于变量和函数的命名。受学校教育的影响,诸如“int i,j;”、“char c;”之类的变量定义到处都是,严重影响了工作的效率。

在本文中,我也不想说一些条条框框的东西,而是以一个实际的例子来为读者展示如何命名变量和函数是恰当的。这里用《学校C语言教材的缺陷》这篇文章中出现的程序代码为例,将该代码按照规范修改后,如下所示:

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

*版权所有 (C)2014,company name。**文件名称:example.c*内容摘要:用于示范如何给变量和函数做规范的命名*其它说明:无*当前版本:V1.0*作 者:周兆熊*完成日期:20140325**修改记录1: //修改历史记录,包括修改日期、版本号、修改人及修改内容等* 修改日期:* 版本号:* 修改人:* 修改内容:***************************************************************/ #include <stdio.h> typedef signed int INT32; //重定义数据类型typedef float FLOAT; //重定义数据类型 FLOAT ProcessFactorial(INT32 iInputValue); //函数声明 /********************************************************************** *功能描述:主函数 *输入参数:无 *输出参数:无 *返回值:无 *其它说明:无 *修改日期 版本号修改人修改内容 * ------------------------------------------------------------------------------------------------------ * 20140325V1.0周兆熊创建 ***********************************************************************/INT32 main(){INT32iInputValue = 0;FLOAT fResult = 0.0;printf("input an integer number: ");scanf("%d", &iInputValue);fResult = ProcessFactorial(iInputValue); //调用求阶乘的函数printf("%d!=%10.0f
", iInputValue, fResult);// return 0;}/********************************************************************** *功能描述:求一个数的阶乘 *输入参数: iInputValue-输入值 *输出参数:无 *返回值:求阶乘后的结果 *其它说明:无 *修改日期 版本号修改人修改内容 * ----------------------------------------------------------------------------------------------------- * 20140325V1.0周兆熊创建 ***********************************************************************/FLOAT ProcessFactorial(INT32 iInputValue){FLOATfResult= 0.0; //先判断输入值是否小于0if (iInputValue < 0){printf("iInputValue < 0, dataerror!");return -1;}else {if (iInputValue == 0 || iInputValue == 1)// 0和1的阶乘是1{fResult = 1; }else{fResult = ProcessFactorial(iInputValue-1)*iInputValue;//执行递归调用 } return(fResult); }}