函数

 

使用函数的好处

1.  降低复杂性

2.  避免重复代码段

3.  限制改动带来的影响

4.  隐含顺序

5.  改进性能

6.  进行集中控制

7.  隐含数据结构

8.  隐含指针操作

9.  隐含全局变量

 

 

规则:1.复杂的函数中,在分支语句,循环语句结束之后需要适当的注释,方便区分各分支或循环体。

      2.代码行最大长度宜控制在80 个字符以内,较长的语句、表达式等要分成

多行书写

      3.如果函数中的参数较长,则要进行适当的划分。

      4.尽量避免含有否定运算的条件表达式。

             5.如果参数是指针,仅作输入参数用,则应在类型前加const,以防止该

指针在函数体内被意外修改。

 

 

              6.原则上尽量少使用全局变量,因为全局变量的生命周期太长,容易出错,

也会长时间占用空间.各个源文件负责本身文件的全局变量,同时提供一对对外函数,

便其它函数使用该函数来访问变量。比如:niSet_ValueName()niGet_ValueName()

不要直接读写全局变量,尤其是在多线程编程时,必须使用这种方式,并且对读写操作

加锁。

              7. 函数体的规模要小,尽量控制在80 行代码之内。

              8. return 语句不可返回指向“栈内存”的“指针”,因为该内存在函数体结

束时被自动销毁。尽量不通过return得到所要数据,而是通过传入

10. 避免函数有太多的参数,参数个数尽量控制在4个或4个以内,参数多的话尽

量打包成结构体进行传参

11. strcpy返回目标的指针。

12. getchar返回×××。

 

 

 

函数调用的开销比循环来说要大得多,所以,递归的效率很低,递归的深度太大甚

至可能出现错误(比如栈溢出)。所以,平时写代码,不到万不得已,尽量不要用递归。即

便是要用递归,也要注意递归的层次不要太深,防止出现栈溢出的错误;同时递归的停止条

件一定要正确,否则,递归可能没完没了。

 

避免头文件重复包含

       #ifndef __FILENAME_H

#define __FILENAME_H

       #endif