健壮性程序的开发点滴之函数如何编写

不同的人有不同的开发风格,也会写出不同程序的健壮代码,一开始从事软件开发的时候,我就意识到写健壮性代码的训练,现在就说明我对健壮性代码编写的一点认识:

       在开发工作的时候,我编写的函数都会带着一种把它写得健壮点的希望,所以在每个函数里都对参数进行判断,对进入函数的参数进行严格的“把关”,使非法的参数不能进入函数体内进行操作,实现函数“完全的”健壮,如下面所示:

void vTest(int * pInt)

{

  if(NULL == pInt)

     return;

   ........

}

这样的好处有很多,第一是调用它的函数不用理会传递的参数是否合法,调用人可以不用理解函数内部怎样才算是合法调用,只要直接调用就可以了。第二修改调用这个函数的错误时,如果错误是调用非法的,那么只要修改函数体就可以了,第三当然是方便易用了。

但这样的函数编写方式产生一个负面的影响:程序冗余度大,占用CPU资源多,浪费不必要的资源。如下:

void main()

{

  int * pInt ;

  int a = 10;

  pInt = &a;

  if(pInt != NULL)

  {

    vTest(pInt);

    vTest(pInt);

  }

}

所以当pInt合法的时候,它无余增加了两条冗余的指令命令判断的代码,产生一种浪费,所以编写函数时最好的方法是把调用的合法性判断放在调用这个函数的代码里进行控制,这样不会产生资源浪费,虽然这样做给调用者带来麻烦,但这样做会更好。(你可以在编写函数时说明怎样的调用才算是合法,怎样判断合法的参数传入,这样给调用者提供帮助)其实这个原则一直就已经使用到,在标准的函数库里和所有大型公司里都使用了这个原则,因为它们已经意识到,我现在才意识到,不过也不太晚,希望你也有这样的意识吧。

你可能感兴趣的:(健壮性程序的开发点滴之函数如何编写)