1.函数考察的三个方面:(1)编程风格(2)出错处理 (3)算法复杂度分析(用于提高性能)
2.源文件开头需要有:
(1) 版权信息
(2) 文件名称,标识符,摘要
(3) 当前版本号,作者/修改者,完成日期
(4) 版本历史信息
3.不提倡使用全局变量,类似于 externint values;这样的声明
4.长表达式,于低优先级处拆分成新行,操作符位于新行之首
5.注释:在写代码的同时,进行注释,精确易懂
6.变量用小写字母开头,例如:intdrawMode;
常量全部用大写,中间用下划线分割单词,例如:const int MAX_LENGTH =10;
静态变量前缀为 s_
全局变量前缀为 g_
7.利用()避免优先级的混淆
8.对于float和double 型,判断是否为0,都需要有精度限制
例如:float 型, float EPSINON = 0.00001;
if((x >= - EPSINON) && (x <= EPSINON));为真
9.循环:将最长的循环放在最内层,提高效率
10.函数参数:一般把目的参数放在前面,源参数放在后面。
若参数是指针,且只作输入作用,应该在类型前添加const,以防止该指针在函数体内被修改。
11.函数中:正常值(结果):通过输出参数获得
而错误标志用return 语句返回。
12.有些函数不需要返回值,但是为了增加灵活性,如支持链式表达式,可以附加返回值。
13.函数入口参数检查:检测非法参数,正确使用“断言”(assert)
#include<assert.h>
assert((参数必须满足的条件) &&(参数必须满足的条件)……);
14.return:返回时,确认不是返回指向“栈内存”的指针或者引用,因为该内存将在该函数结束的时候自动销毁,导致返回值无效或者出错。
15.参数为指针的时候,不能在函数中分配空间,因为这个指针是一份拷贝,实在需要对该指针分配空间,需要使用指向指针的指针,才能正确的分配。应注意函数的局部变量指针,会在函数调用结束以后消亡。
voidgetmemory(char *p);//错误
voidgetmemory(char **p);//正确
书的后续为c++内容。