-
问题
自上而下的设计可能产生高层次的抽象,但代码复用性不高。在创建高层次的抽象时,不仅需要更大的工作量,而且最初的函数到底能够在多大程度上满足高层次的需求呢?
以数据交换程序为例:
建立抽象
从概念的视角来看,建立抽象关注的不是如何实现,而是函数要做什么,将实现细节隐藏起来,进而帮助我们构建更易于修改的软件。理解系统的完整结构就变得更容易了。-
建立接口
接口是由公开访问的方法和数据组成的,接口描述了与模块交互的唯一途径。最小化的接口只包含对于接口的任务非常重要的参数,最小化的接口便于学习如何与之交互,且只需要理解少量的参数,同事易于扩展维护。
当p1和p2分别指向变量a和b时,则p1和p2存储的值就是&a和&b。
-
void *指针
有时我们并不关心指针所指向的变量的类型,此时可以使用并不指定具体数据类型的泛型指针void *。通常只允许相同类型的指针之间进行转换,但泛型指针能够转换为任何类型的指针。memcpy()函数它将一段数据从内存里一个地方复制到另一个地方。可以复制任何类型的数据,因此将它的指针参数设定为void指针非常合理。
-
使用接口
只需传入待交换的变量的地址, 即可确定如何通过接口调用它们。
共性与可变性分析(基于C语言以数据交换为例说明)
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- !!!注意:因为简书的显示格式缘故,所以“ * ”显示会出现问题,可能有些星号由于疏忽未改动格式,造成没有显示,请...
- 你是不是和我一样,常常羡慕那些环游世界的达人们,却在感慨自己“有时间的时候没有钱、有钱的时候没有时间”去旅行呢? ...