1.组织要处理的数据是开发计算机程序最基本的步骤.
2.通过类型(type)可定义如何使用特定的位集合, 通过函数(function)可定义操作数据类型的运算. 使用C结构(structure)来分组不同类型的信息块, 使用指针(pointer)来直接引用信息.
3.运算与类型关联, 而不是毫无关系. 当执行某运算时, 需要确保它的操作数和结果类型正确无误. (~~~~注意: 忽视这项工作是编程中常犯的错误~~~)
4.通过数据类型理解程序.
5.编写程序的一个目标是组织数据类型和运算, 让它们尽可能广泛地应用到不同的场合,制定这个目标的原因是: 它可以重用旧程序来解决新问题,新问题也许与原始程序的问题完全无关.
步骤:
a.首先, 准确理解和定义程序使用哪些运算. 样可以容易地将它扩展到任何支持这些运算的数据类型.
b.其次: 解决新问题时, 可以在已有运算的基础上再添加它执行的抽象运算.
6.在C中实现新数据运算的机制是函数定义.函数的声明是向其它函数提供调用该函数以及使用正确类型参数所必须的信息. 定义与声明的分离为程序组织提供了灵活性.
7.不指定程序处理的数据类型, 可以扩展程序潜在的应用性. 当面对一种要处理的新数值类型时, 只要更改其数据类型, 就可以更新程序. (例如:typedef int Number)
8.程序设计通用的解决方案:(客户----接口----实现)
a.一个接口(interface), 并声明用来操作该数据结构的函数.
b.在接口中声明的函数的实现(implementation----执行).
c.一个客户程序(client program).它使用接口中声明的函数在较高的抽象层次中工作. 客户----接口----实现, 这种方案是软件工程实践值得推荐的方法.
9. 接口可以看作数据类型的定义, 它是客户程序与实现程序之间的一种契约, 客户端只允许通过接口中定义的函数来访问数据, 同时 实现程序 能提供满足要求的函数.
A. 接口应包含入如下声明:
a. 定义用处理的数据类型; b. 定义与类型关联的运算.(保存在*.h的文件中)
B. 接口的实现: a. 引用需要的系统接口. b. 引用要实现的接口并添加接口的实现. (验证实现的函数与声明的函数类型是否相同 )------(接口保存为*.c)
C. 客户程序. (包含函数main的文件, 保存为*.c)
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}