Symbian OS C++编程规范与内存管理

需积分: 3 26 下载量 138 浏览量 更新于2024-12-19 收藏 380KB PDF 举报
"Symbian程序编码规范(C++)" Symbian操作系统是早期智能手机平台的代表,它的编程语言主要为C++。这份文档是针对Symbian OS C++开发的编码规范和技巧,由诺基亚论坛发布,旨在提高代码质量和可维护性。 1. **简介** 文档的目标读者是对Symbian OS C++编程感兴趣的开发者,内容涵盖了内存管理、异常处理和资源清理等方面的基础和最佳实践。 2. **内存管理** - **清除堆栈(CleanupStack)** 清除堆栈是Symbian OS中用于自动管理临时对象的一种机制,确保在异常发生时能够正确释放资源。所有程序都应该检查“资源用尽”错误,并使用适当的异常处理机制。 - **规则1:异常退出函数和捕获模块** 异常退出函数用于在发生错误时清理资源。`new(ELeave)`运算符用于创建对象,当分配失败时抛出异常。`NewL()`和`NewLC()`是常见的构造函数,用于两阶段构造,确保即使在异常情况下也能正确清理。 - **规则2:使用清除堆栈** 清除堆栈是处理异常和资源释放的关键,它能确保在函数返回前正确释放分配的内存。需要理解何时何地使用清除堆栈以及其工作原理。 - **规则3:两阶段构造** 两阶段构造是一种防止资源泄露的策略,先分配内存,然后初始化对象。`NewL()`和`NewLC()`函数就是这种模式的体现。 - **常见错误** - 错误使用`TRAP`和`TRAPD`可能导致资源未被正确清理。 - 不恰当的`new`运算符使用可能导致内存泄漏或未初始化的对象。 - 后缀`L`的误用可能破坏两阶段构造的完整性。 3. **内存泄漏检测** Symbian提供了一些工具,如在WINS模拟器中,来帮助检测和定位内存泄漏问题。 4. **检查和严重提示** A"Severe"消息通常表示程序遇到严重错误,需要立即停止。开发者应避免发出不必要的严重消息,并确保它们传达了明确的错误信息。 5. **总结** 遵循这些编码规范和技巧,开发者可以编写出更健壮、更易于维护的Symbian OS应用程序,减少内存泄漏和其他潜在问题,同时提高程序的稳定性和可靠性。对于Symbian平台的开发人员来说,理解并应用这些规范至关重要。