逆水行船

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

 

我的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   荣-  阅读(576)  评论(1编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2005-07-20 鬼故事
2005-07-20 文章收藏:Web 窗体代码模型

导航

统计

点击右上角即可分享
微信分享提示