您当前的位置:首页 > 计算机 > 编程开发 > C语言

使用注释、空白符会影响程序的速度、大小或效率吗?

时间:12-30来源:作者:点击数:

使用注释会影响程序的速度、大小或效率吗?

不会。当你的程序被编译时,所有的注释都会被忽略掉,只有可执行的语句才会被分析,并且被放入最终编译所得的程序版本中。

因为注释并不会给程序的速度、大小或效率带来负担,所以你应该尽量多使用注释。你应该在每一个程序模块的头部都加上一段注释,以解释该模块的作用和有关的特殊事项。同样,你也要为每一个函数加上注释,其中应包括作者姓名、编写日期、修改日期和原因、参数使用指导、函数描述等信息。这些信息将帮助其它程序员更好地理解你的程序,也有助于你以后回忆起一些关键的实现思想。

在源代码中也应该使用注释(在语句之间)。例如,如果有一部分代码比较复杂,或者你觉得有些地方要进一步说明,你就应该毫不犹豫地在这些代码中加入注释。这样做可能会花费一点时间,但这将为你或其它人节省几个小时的宝贵时间,因为只需看一下注释,人们就能马上知道你的意图。

在19.4中有一个例子,它表明了使用注释、空白符和下划线命名规则是如伺使程序更清晰、更易懂的。

使用空白符会影响程序的速度、大小或效率吗?

不会。与注释一样,所有的空白符都会被编译程序忽略掉。当你的程序被编译时,所有的空白符都会忽略掉,只有可执行的语句才会被分析,并且被放入最终编译所得的程序版本中。

在C程序中用空白符隔开可执行语句、函数和注释等,将有助于提高程序的可读性和清晰度。许多时候,只要在语句之间加入空行,就可提高程序的可读性。请看下面的这段代码:

    / * clcpy by GBlansten * /
    void clcpy(EMP * e,int rh,int ot)
    { e->grspy= (e->rt * rh)+ (e->rt * ot * 1.5) ;
    e->txamt = e->grspy * e->txrt ;
    e->ntpy = e->grspy-e->txamt ;
    updacctdata (e);
    if (e->dd= =false) cutpyck(e) ;
    else prtstb (e) ; }

你可以看到,这个函数确实是一团糟。尽管这个函数显然是正确的,但恐怕这个世界上没有一个程序员愿意去维护这样的代码。如果采用本章中的一些命名规则(例如使用下划线,少用一些短而模糊的名字),使用一些大括号技巧,加入一些空白符和注释,那么这个函数将会是下面这个样子:

/********************************************************************************/
Function Name: calc_pay
Parameters:     emp         -EMPLOYEE pointer that points to employee data
                reg-hours   -The number of regular hours (<=40) employee
                                           has worked
                ot-hours    -The number of overtime hours (>40) employee
                                           has worked
Author :        Gern Blansten
Date Written:   13 dec 1993
Modification:   04 sep 1994 by Lloyd E. Work
                -Rewrote function to make it readable by human beings.
Description:    This function calculates an employee's gross bay ,tax
                amount, and net pay, and either prints a paycheck for the
                employee or (in the case of those who have direct deposit)

                      prints a paycheck stub.
/*********************************************************************************/
void calc_pay (EMPLOYEE * emp, int reg hours, int or_hours)
{
      / * gross_pay = (employee rate * regular hours)+
                      (employee rate * overtime hours * 1.5) * /
      emp->gross_pay= (emp->rate * reg_hours) +
                      (emp->rate * ot hours* 1.5);
      / * tax amount=gross_pay * employee's tax rate * /
      emp->tax amount=emp->gross_pay * emp->tax-rate ;
      / * net pay=gross pay-tax amount * /
      emp->net-pay=emp->gross pay-emp->tax_amount ;
      / * update the accounting data * /
      update accounting data(emp);
      / * check for direct deposit * /
      if (emp->direct_deposit= =false)
          cut_ paycheck(emp);           / * print a paycheck * /
      else
          print_paystub(emp);           /* print a paycheck stub * /
}

你可以看到,Lloyd版本(该版本中使用了大量的注释、空行、描述性变量名等)的可读性比糟糕的Gern版本要强得多。你应该尽量在你认为合适的地方使用空白符(和注释符等),这将大大提高程序的可读性一一当然,这可能会延长你的工作时间。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门