让你提前认识软件开发(6):程序的版式和注释

第1部分 重新认识C语言

程序的版式和注释 

 

        在《高质量程序设计指南(C/C++语言)》中,作者说:可以把程序的版式比喻为“书法”,好的“书法”可以让人对程序一目了然,看得兴致勃勃。确实,我们一打开程序,首先看到的便是程序的排版,我们的第一印象便是程序写得是工整还是凌乱。都说第一印象很重要,为了给大家留下好的第一印象,我们一定要注重程序的版式。

        此外,好的注释能够帮助读者更快地理解程序,提高工作的效率。也许是因为工作比较忙的缘故,很多软件工程师不喜欢为自己的程序写注释,认为这样做是没有必要的。那么,如果给他一份毫无注释的代码,他会有什么样的感受呢?在程序中,优美的、得当的注释能够起到锦上添花的作用,更能够体现出一个工程师的专业素质。因此,写注释实在是很有必要的。

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

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

        头文件起到一个辅助的作用,简要地反应出本程序的基本功能。

        一般说来,头文件的版式可采用以下的样式:

/***************************************************************
*版权所有 (C)2014,公司名称。
*
*文件名称:
*内容摘要:
*其它说明:
*当前版本:
*作   者:
*完成日期:
*
*修改记录1:  //修改历史记录,包括修改日期、版本号、修改人及修改内容等
*   修改日期:
*   版本号:
*   修改人:
*   修改内容:
***************************************************************/

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

/**************************************************************
             相关宏定义
**************************************************************/

/**************************************************************
             相关结构体定义
**************************************************************/

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

#endif

 

        说明:

        (1)在头文件开始的地方,一定要有注释,不能马上开始写代码。这里的注释主要是版权和版本相关的信息。为什么需要呢?因为我们已经不在学校了,我们写的每一行代码都属于公司,所以要有版权声明,这也是对一个职业人的基本要求。

       (2)红色字体所示的代码是为了防止头文件被重复引用,这在每个工程文件中都是必须的。

       (3)为了便于理解,我们会将很多诸如数字等信息用宏来代替,就像C语言课上我们用“PI”来代表圆周率的值一样。此时,就需要在头文件中对实现文件中需要用到的宏进行定义,并给出适当的注释,方便理解。

       (4)在实际的C语言程序,结构体是经常会用到的。例如,某个消息结构体包含了很多的字段,这时用一个结构体进行定义是很方便的。在头文件中,尽量包含本程序要用到的所有结构体。

       (5)在学校里,很多人都不习惯对函数进行声明。为了防止函数在没有定义之前就被引用,大家一定要在头文件中对本程序中出现的所有函数进行声明。为了便于理解,在某些重要函数后面一定要写上注释。

 

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

        源文件(.c)文件是程序的核心,所有的工作都是在里面完成的。

        一般说来,源文件的版式可采用以下的样式:

/***************************************************************
*版权所有 (C)2014,公司名称。
*
*文件名称:
*内容摘要:
*其它说明:
*当前版本:
*作   者:
*完成日期:
*
*修改记录1:   //修改历史记录,包括修改日期、版本号、修改人及修改内容等
*   修改日期:
*   版本号:
*   修改人:
*   修改内容:
*
*修改记录2:  //修改历史记录,包括修改日期、版本号、修改人及修改内容等
*   修改日期:
*   版本号:
*   修改人:
*   修改内容:
***************************************************************/

/**************************************************************
                      头文件引用
**************************************************************/

/**************************************************************
                      全局变量定义
**************************************************************/

/**************************************************************
                      函数实现
**************************************************************/

        说明:

        (1)函数头部的版权和版本相关的信息与头文件的类似,也是必不可少的。

        (2)在源文件的函数中,会调用很多不在该文件中定义的函数,因此,需要将这些函数包括进来。怎么办呢?就要引用定义这些函数的头文件,像我们很熟悉的“#include <stdio.h>”。

        (3)当程序函数比较多时,会出现很多函数都需要引用同一个变量的情况,这就需要定义一个全局变量供它们使用。但全局变量的个数要尽量少,尽量不要定义多余的全局变量。什么原因呢?就拿人类来说,我们依靠别人越少,我们就会越自由,如果做很多事情都要别人点头,你的心里感觉如何?

        (4)函数实现是程序的核心,我们开头做了那么多的工作,都是为了实现函数服务的。那么函数到底应该怎么写?这是以后的内容。这里要说的是函数头部的注释。受到学校教育的影响,很多开发工程师不喜欢写注释,或者是写出很简单的注释,起不到注释应有的作用。根据作者的经验,函数头部的可采用如下的样式:

/**********************************************************************
 *功能描述:
 *输入参数:
 *输出参数:
 *返回值:
 *其它说明:
 *修改日期              版本号          修改人         修改内容
 * --------------------------------------------------------------------
 * YYYYMMDD            XXX             Name            YYY
 ***********************************************************************/

        在写好注释之后,便可以开始写正式的函数实现语句了。

     

        在程序代码中,如果善用空格和空行,可使程序的版式更加的优美。有关空格和空行的使用建议如下:

        (1)  空格的使用

        1)     在C语言的关键字(像if、for、while、switch等)之后要留有空格,以突出该关键字;在函数名之后不要留空格,紧跟左括号‘(’,以与关键字作区别;但在函数定义的参数之间,要留有空格,如Function(x, y, z)。

        2)     赋值操作符、算术操作符、比较操作符、逻辑操作符、位域操作符等,如“=”、“+=”、“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后应当加空格。但一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格。

        3)     在一行代码的结尾之后不要留空格。

        4)     在代码中,使用空格进行缩进(一般缩进为4个空格),不要在代码中使用制符表(即TAB键)来缩进。

 

        (2)  空行的使用

        1)     空行起着分隔程序段落的作用,适当的空行将使程序的布局更加的清晰。

        2)     在每个函数定义结束之后都要加空行(两个函数之间,建议添加两个以上的空行)。

        3)     函数体首尾不要留空行,函数体中也不要随意添加空行。在函数体中,空行多用于分隔关系不是很大的代码段。

 

            有关注释,使用建议如下:

        (1)   在C语言程序中,注释的书写有两种方式,一种是用“//”来标注,一种是用“/* … */”来标注。当只需要对单行代码进行注释时,可以采用第一种方式;当对多行代码进行添加或删除时,可以采用第二种方式。当然,这只是作者个人的看法,不同的项目组有不同的规范。

        (2)  注释的位置要与被描述的代码相邻,可以放在代码的上方或右方,但不可放在其下方。

        (3)  注释应当简单、准确、易懂,防止二义性,错误的注释不但无益反而会影响对代码的阅读和理解。此外,要尽量避免在注释中使用缩写,特别是不常用的缩写,以让人产生疑惑。

        (4)  要边写代码边注释,在修改代码的同时要修改相应的注释,以保证注释与代码的一致性。此外,不再有用的注释要删除掉。

        (5)  巧妙或复杂的代码段前要添加注释,比较隐晦的地方要在代码行尾添加注释。

 

       “千里之行,始于足下”,当我们看到排版工整、注释规范的代码时,会产生继续读下去的想法(如果当时你的心情非常不好,那就另当别论了),这也就无形中提高了办事的效率。同时,会让他人对程序的作者产生好的第一印象,进而使得下一步的愉快合作成为可能。因此,注意程序的版式和注释的书写是十分重要的。

 

 

(欢迎访问南邮BBS:http://bbs.njupt.edu.cn/)
(欢迎访问重邮BBS:http://bbs.cqupt.edu.cn/nForum/index)

(本系列文章每周更新两篇,敬请期待!本人新浪微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)

时间: 2024-09-14 03:07:59

让你提前认识软件开发(6):程序的版式和注释的相关文章

提前认识软件开发(15) 程序调试的利器:日志

如果世界上有一个人能够保证一次写出来的代码是百分之百正确的,那么毫无疑问,他一定是世界上最优秀的程序员,没有之一.为什么要求代码写好过后要进行充分的自测(包括单元测试和集成测试)?就因为是人皆会犯错,是程序就会有bug.作为一名软件开发人员,必须要学会对程序进行测试,也就是要学会程序的调试. 一般而言,对代码的调试有以下几种方法: 第一,凭肉眼看.在开发阶段,我们编写的每一行代码都需要用我们的"火眼金睛"多审查几遍.如果要问,最好的代码调试工具是什么?我认为是人眼.不管是代码还是文档,

让你提前认识软件开发(26):数据库脚本的注释

第2部分 数据库SQL语言 数据库脚本的注释   1. 概述         注释在程序语言的编写中占有非常重要的地位.优美的.得当的注释不仅有助于研发人员理解程序,还能够提高编程效率(进而提高办事效率).         但是,可能是由于工作比较忙的缘故,许多开发人员不重视注释的书写,这也导致了项目交接的时候,其他开发人员理解程序困难,甚至不知道程序到底要做什么事情.因此,良好注释的书写是对一个开发人员的基本要求,大家一定要重视.         对于脚本的注释,建议大家一律采用英文,这样可以

提前认识软件开发(6):程序的版式和注释

第1部分 重新认识C语言 程序的版式和注释 在<高质量程序设计指南(C/C++语言)>中,作者说:可以把程序的版式比喻为"书法",好的"书法"可以让人对程序一目了然,看得兴致勃勃.确实,我们一打开程序,首先看到的便是程序的排版,我们的第一印象便是程序写得是工整还是凌乱.都说第一印象很重要,为了给大家留下好的第一印象,我们一定要注重程序的版式. 此外,好的注释能够帮助读者更快地理解程序,提高工作的效率.也许是因为工作比较忙的缘故,很多软件工程师不喜欢为自己

提前认识软件开发(1) 序言

序言 正式踏上软件开发岗位已经将近两年了,经历了很多,也学到了很多."万事开头难",学生转变为职业人的过程,恰似茧化成蝶的过程. 1.为什么要写作本系列? 在工作的过程中,我发现我们在学校里面学到的很多东西片面肤浅,根本达不到岗位的要求.像编码规范.研发流程等等学校里几乎不提及的知识,在实际的软件开发项目中却恰恰是异常的重要. 在学校里面,我们欠缺的教育主要包括以下方面: 第一,对编码规范的要求.计算机编程课上,老师只要求学生能够编写程序实现既定的功能即可,几乎不会对编码规范提出要求,

让你提前认识软件开发(1):序言

序言           正式踏上软件开发岗位已经将近两年了,经历了很多,也学到了很多."万事开头难",学生转变为职业人的过程,恰似茧化成蝶的过程.          1.为什么要写作本系列?        在工作的过程中,我发现我们在学校里面学到的很多东西片面肤浅,根本达不到岗位的要求.像编码规范.研发流程等等学校里几乎不提及的知识,在实际的软件开发项目中却恰恰是异常的重要.        在学校里面,我们欠缺的教育主要包括以下方面:        第一,对编码规范的要求.计算机编程

提前认识软件开发(16) 如何对程序进行优化

对程序进行优化,是软件开发工程师必然会涉及到的问题.那么为什么要对程序进行优化呢?原因有以下几个: 第一,在原程序基础之上新增.删除或修改了功能,需要改变原程序流程.客户需求随时可能会变化,今天已经实现的功能,说不定明天就要修改或去掉.落实到程序上面,就需要我们随时准备对写好的代码进行修改,而不要奢望写好之后就永远不要动了. 第二,原程序有bug.这类情况出现得非常的频繁,很多软件有1.0.2.0.3.0等版本,部分原因就是前面版本中程序有问题,在修改程序的过程中使得软件版本不断升级. 第三,原

提前认识软件开发(14):程序中的算法

算法(Algorithm),是程序的灵魂.著名计算机科学家.图灵奖获得者沃思曾提出过一个公式:数据结构+算法=程序.可见,算法在程序中占有非常重要的地位. 在实际的软件开发项目中,不管是有意设计或是无意为之,我们几乎随时在和算法打交道.小到定义一个变量,大到编写一个函数,这些都是算法的实现过程. 本文以作者实际项目工作为背景,介绍算法在C程序中的应用. 1.算法概述 什么是算法呢?先来看一看一些计算机书籍中的定义. 经典书籍<算法导论>(Cormen等著,机械工业出版社)中,作者认为算法是一系

让你提前认识软件开发(46):首先是为人编写程序,其次才是计算机

第3部分 软件研发工作总结 首先是为人编写程序,其次才是计算机          "首先是为人编写程序,其次才是计算机",这是软件开发的基本要点,软件的生命周期贯穿于产品的开发.测试.生产.发布.用户使用.版本升级和后期维护等长期过程中,只有易读.易维护的软件代码才具有生命力.         在实际的软件开发过程中,可能是由于工作很忙的原因,很多开发人员只注重实现程序的基本功能,而忘记了编程规范,因此写出来的代码只能让计算机看懂,人要看懂很不容易.更有甚者,有些项目组为了赶进度,明确

让你提前认识软件开发(16):如何对程序进行优化?

第1部分 重新认识C语言 如何对程序进行优化?            对程序进行优化,是软件开发工程师必然会涉及到的问题.那么为什么要对程序进行优化呢?原因有以下几个:         第一,在原程序基础之上新增.删除或修改了功能,需要改变原程序流程.客户需求随时可能会变化,今天已经实现的功能,说不定明天就要修改或去掉.落实到程序上面,就需要我们随时准备对写好的代码进行修改,而不要奢望写好之后就永远不要动了.         第二,原程序有bug.这类情况出现得非常的频繁,很多软件有1.0.2.