一次代码Review的总结

引子:

手上的虽然是一个小项目,但由于关联性很多,而且是系统服务,如果代码出了问题可能会影响整个系统,所以压力还是挺大,也专门找了老外来帮着Review代码。

虽然做了很长时间的C#,但代码是完全的 C + Windows API,对自己来说,还完全是个新手,也顺便弥补了自己在这方面的空白。


记录一下吧,以备后看:

  1. 每一个系统函数的调用都应该检查返回值,因为理论上都有失败的可能,包括CreateEvent是否失败,CloseHandle的对象是否为空,并做相应的处理。
  2. InitialzieCriticalSection必须要和DeleteCriteicalSection配对使用,并且要确保执行顺序和时机。最好放在程序的开头。
  3. 注册表键值建议用const声明。
  4. 常量值建议用const声明。
  5. 大小写BOOL和bool要区别开。
  6. 大小写TURE和ture也要区别开。
  7. 内核事件内不要写业务逻辑,只发送消息或改变信号。
  8. 如果是手动的事件,在WaitForSingleObject以后要记得手动重置。
  9. 如果Event的等待时间是INFINITE要记得如果不触发事件,会永远等待。

你可能感兴趣的:(Windows,内核原理)