Symbian OS C++编程规范与技巧

需积分: 2 1 下载量 90 浏览量 更新于2024-10-19 收藏 380KB PDF 举报
"Symbian OS C++程序员编码诀窍" Symbian OS 是一个专为移动设备设计的操作系统,它的应用程序通常使用C++语言编写。本文档提供了Symbian OS C++编程的一些关键技巧和规范,旨在帮助程序员遵循最佳实践,以确保代码的稳定性和效率。 1. **内存管理** - 内存管理在Symbian OS中至关重要,因为系统资源有限。程序应始终监控并有效管理内存分配,以防止资源耗尽。 - 清除堆栈(CleanupStack)是一个特别重要的概念,用于确保在异常发生时正确释放已分配的内存。 2. **清理堆栈(CleanupStack)** - 所有程序都应该检查可能的“资源用尽”错误,并适当地处理它们。 - 传统的调试方法可能会导致问题,因为它们不能确保在异常退出时清理所有资源。 - Symbian OS 提供了解决方案,即使用清理堆栈来跟踪和自动释放内存,尤其是在异常处理时。 3. **规则1:异常退出函数和捕获模块** - 异常退出函数是处理错误并确保资源正确释放的函数。 - `new(ELeave)` 运算符用于分配内存,如果失败则抛出异常。 - `NewL()` 和 `NewLC()` 是构造函数的惯用写法,它们分配内存并调用构造函数,同时在异常情况下自动清理。 - `TRAP` 和 `TRAPD` 用于捕获异常,它们可以帮助程序员在代码中处理错误。 4. **规则2:使用清除堆栈** - 清除堆栈是用来存储临时对象的,当异常发生时,它会自动销毁堆栈上的对象,释放内存。 - 使用清除堆栈可以确保即使在异常情况下也能保持代码的整洁和资源的有效管理。 5. **规则3:两阶段构造** - 两阶段构造是Symbian编程的一个重要特性,它涉及到先分配内存,然后在第二阶段调用构造函数。 - `NewL()` 和 `NewLC()` 用于实现这一过程,确保即使在构造过程中发生异常,也能释放已分配的内存。 6. **常见错误** - 错误使用 `TRAP` 和 `TRAPD` 可能会导致错误的异常处理。 - 不正确的 `new` 运算符使用可能导致内存泄漏或资源管理不当。 - 在不需要的情况下使用后缀 'L' 可能会混淆代码并影响资源管理。 7. **内存泄漏检测** - 在Symbian开发中,内存泄漏是一个严重问题。使用WINS模拟器中的工具可以帮助检测和定位内存泄漏。 8. **检查和严重提示** - 通过适当的检查和严重提示,程序员可以及时发现和修复错误,提高代码质量。 Symbian OS C++程序员需要遵循严格的编码规范,特别是关于内存管理和异常处理的规则,以确保代码的健壮性和平台的高效运行。理解和应用这些编码诀窍是开发高质量Symbian应用程序的关键。