逆水行船

别人的天堂,是我的异乡;无端的繁华,倍添我的惆怅

 

我的C++代码检查列表

检查列表:
1)外部输入指针是否检查NULL
2)是否存在::memcpy(&results, buf,  sizeof(buf));语句
3)是否判断指针为NULL后,又调用了指针的成员?
4)封包解包的是否,设置的缓存是否足够存放所有的消息记录。
5)是否存在一写多读问题,如果存在,是否考虑了多线程同步问题。
6)new出的指针,是否delete掉。是否注意了delete与delete[]
7)如果有假设依赖,是否在注视中注明,建议用ASSERT表示。
8)是否在该使用==的时候使用了=?是否在该使用=的时候,使用了==?
9)整数相除的是否,是否注意了分子可能为0的情况?是否注意了结果可能为0的情况?启动定时器的时候,是否注意了周期为0的情况?
10)有没有对指针用sizeof而非strlen取值?
11)请检查if语句中的==语句
12) 有没有对需要初始化的全局变量进行初始化?例如指针等
13)memcpy时,是否对拷贝目标进行了初始化?
14)是否在deleete后又调用了指针成员。delete后需要设置指针为NULL,因为delete后,并不清空指针指向区域的内存。
15)在遍历CMap的时候,是否最后需要RemvoceAll?有没有忘记RemoveAll?特别是在delete元素的时候。
16)调用CString的GetBuffer后,是否调用Realse?否则会造成内存泄漏。
17)在向数据库中添加数据的时候,是否考虑了“'”字符?

18)被继承的类的析构函数是否设置为虚函数,如果未设置为虚函数,则子类的析构函数就有可能执行不到。

 

编程风格检查:
1)是否存在魔术数字1,2, 3等,是否可以替换为枚举?
2)应用枚举时,是否带有枚举名称,类名称等标识性信息?例如:
sender.nType = Enum_Camera;

sender.nType = EQMType::Enum_Camera;

posted on 2009-07-20 15:42  荣-  阅读(570)  评论(1编辑  收藏  举报

导航