Symbian OS C++编程技巧与内存管理

需积分: 0 0 下载量 31 浏览量 更新于2024-10-22 收藏 380KB PDF 举报
"Symbian OS C++程序员编码诀窍" Symbian OS 是一个专为移动设备设计的操作系统,而Symbian C++是其主要的编程语言之一。本文档面向的是那些使用C++为Symbian OS 6.x/7.0s开发应用程序的开发者,旨在帮助他们避免在编程过程中遇到的常见问题,提高开发效率。 1. **内存管理** - **清除堆栈(CleanupStack)**: 清除堆栈是Symbian OS中用于管理临时对象的一种机制,确保在异常发生时正确释放资源。每个程序都应该检查并处理"资源用尽"的错误。传统的调试方法可能无法有效追踪和解决这类问题,而Symbian OS 提供了更优的解决方案,如异常退出函数和使用new(ELeave)运算符。 - **规则1:异常退出函数和捕获模块**:异常退出函数在异常发生时执行清理工作,new(ELeave)运算符用于创建对象并在异常时自动清理。NewL()和NewLC()是Symbian的惯用法,它们分别用于两阶段构造,同时处理异常。 - **规则2:使用清除堆栈**:清除堆栈用于跟踪需要在异常情况下释放的对象,确保在异常退出时能正确清理资源。 - **规则3:两阶段构造**:两阶段构造是Symbian C++中创建对象的常见方式,NewL()和NewLC()在分配内存和初始化对象之间分开操作,提高了代码的安全性。 2. **常见错误** - **误用TRAP和TRAPD**:TRAP和TRAPD是用于捕获和处理异常的指令,错误使用可能导致意外的结果或资源泄露。 - **错误使用new运算符**:在Symbian OS中,new运算符需要与ELeave一起使用以处理异常,否则可能会导致内存泄露。 - **错误使用后缀‘L’**:在Symbian C++中,后缀‘L’表示函数返回后仍然保持栈上的对象,错误使用可能导致资源管理不当。 3. **内存泄漏检测** - **使用WINS模拟器中的工具**:开发者可以利用WINS模拟器中的工具来检测和定位内存泄漏,这些工具能帮助识别和修复内存管理问题。 Symbian OS C++的编码诀窍集中在有效的内存管理、异常处理和资源清理上。遵循这些最佳实践,可以显著减少调试时间和提高代码质量。在Symbian平台上进行开发时,理解并应用这些规则至关重要,因为它们直接影响到应用程序的稳定性和性能。