Symbian OS C++编程规范详解

需积分: 10 1 下载量 157 浏览量 更新于2024-10-31 收藏 380KB PDF 举报
"Symbian OS C++编程规范" 在Symbian OS的开发中,遵循良好的编程规范至关重要,因为这不仅影响代码的可读性和可维护性,还直接影响到系统的稳定性和性能。这份NOKIA内部编程规范为新手提供了一个入门指南,详细介绍了如何有效地进行Symbian C++编程。 **内存管理** Symbian OS的内存管理有其独特之处,特别是对于异常处理和资源清理。在Symbian系统中,内存分配和释放是程序员必须关注的重点。 **清除堆栈(CleanupStack)** 清除堆栈是Symbian OS中用于确保在异常情况下正确释放内存的一种机制。所有的程序都应检查"资源用尽"的错误,并在遇到问题时能够干净地退出。传统的调试方法在面对异常情况时可能不够有效,因此Symbian引入了清理堆栈来解决这个问题。 **规则1:异常退出函数和捕获模块** 异常退出函数(如Exit())在异常发生时被调用,以确保资源的正确释放。`new(ELeave)`运算符用于创建对象,如果内存分配失败,它会抛出一个异常。`NewL()`和`NewLC()`是两种常见的构造函数,它们分别用于两阶段构造并自动将对象添加到清理堆栈。 **TRAP和TRAPD**是用于异常处理的宏,它们可以捕获错误并执行相应的清理操作。 **规则2:使用清除堆栈** 清除堆栈用于存储临时对象,当函数返回时,这些对象会被自动删除,从而避免内存泄漏。使用清理堆栈可以确保即使在异常情况下也能正确释放资源。 **规则3:两阶段构造** 两阶段构造是Symbian编程的一个关键特性,它涉及先分配内存,然后在第二阶段初始化对象。`NewL()`和`NewLC()`用于实现这种构造方式,它们确保在异常发生时能正确释放内存。 **常见错误** 编程过程中可能会遇到一些常见错误,例如误用`TRAP`和`TRAPD`,不正确使用`new`运算符,或者在不需要的情况下使用后缀`L`。 **内存泄漏检测** 在WINS模拟器中,有工具可以帮助检测内存泄漏。通过这些工具,开发者可以监控内存使用情况,确保程序不会因内存泄漏而崩溃。 **检查和严重提示** 在编程过程中,使用适当的检查和严重提示可以帮助定位和修复问题。这些提示通常记录在日志中,有助于调试和优化代码。 Symbian OS C++编程规范强调了内存管理的重要性,特别是异常处理、资源清理和两阶段构造,这些都是编写高效且可靠的Symbian应用程序的关键要素。遵守这些规范可以提高代码质量,减少错误,并提升系统稳定性。