开发具有高效性、简单性、可移植性和安全性的代码.docx

想预览更多内容,点击预览全文

申明敬告:

本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己完全接受本站规则且自行承担所有风险,本站不退款、不进行额外附加服务;如果您已付费下载过本站文档,您可以点击这里二次下载

文档介绍

PAGE PAGE 1

开发具有高效性、简单性、可移植性和安全性的代码 开发具有高效性、简洁性、可移植性和安全性的代码 C 程序设计语言定义了两个标准的内存管理函数: malloc() 和 free() 。C 程序员经常使用那些函数在运行时安排缓冲区,以便在函数之间传递数据。然而在很多场合下,您无法预先确定缓冲区所需的实际大小,这对于构造复杂的 C 程序来说,可能会导致几个根本性的问题。在本文中,Xiaoming Zhang 倡导一种自我管理的抽象数据缓冲区。他概括地给出了抽象缓冲区的伪 C 代码实现,并具体介绍了采用这种机制的优点。 软件的规模和复杂性随时都在增长,从根本上影响了应用程序的体系结构。在很多场合下,将全部功能编码进软件的单个部分中是不切实际的。让独立的软件部分相互交互,比如以插件的形式,这样做的重要性正在变得越来越明显。要相对简单地实现这种交互,甚至是在不同厂商编写的软件部分之间,软件需要有定义良好的接口。使用诸如 C 这样的传统程序设计语言来编写满意这种需要的软件可能是一个挑战。 考虑到这种挑战,本文将研究 C 程序设计语言中的数据缓冲区接口,同时着眼于如何改进当前实践。尽管内存管理看起来可能无足轻重,但是恰当设计的接口能够产生高效、简洁和可移植的代码 —— 这其中每个特性都需要进行内存管理才能实现。因而,下一节将概略介绍程序员在采用传统数据缓冲区管理方案时所面对的各种问题。后面跟着要介绍的是抽象数据缓冲区方案,并通过伪代码实现来进行说明,这种方案解决了很多问题;最终要介绍的是一些代码片断,用以演示该解决方案的好处。 传统实践和它们带来的问题 C 程序员经常使用动态安排的缓冲区(通过调用 malloc() / free() 函数)在函数之间传递数据。尽管该方法供应了敏捷性,但它也带来了一些性能影响。首先,它要求在需要缓冲区块的任何地方进行额外的管理工作(安

最近下载