C语言接口与实现创建可重用软件的技术读书笔记(1)

这本书是讲的是“如何设计、实现、和有效使用C语言库函数,掌握创建可重用C语言软件模块技术。重点阐述如何用一种与语言无关的方法将接口设计实现独立出来,从而用一种基于接口的设计途径创建可重用的API“。

1、其中提到的算法工程,也就是包装数据结构以供应用程序使用。

2、文学程序,也就是将一个程序划分成各个模块,模块之间大小不一,可以嵌套。讲述代码的时候尽可能按照最适于理解的顺序给出,而不是按语言所硬性规定的顺序。

3、在程序设计风格中,库的设计和实现是困难的。在通用性,简单性和效率三个约束之间,我们必须小心翼翼,谨慎前行。也就是说以后在自定义函数的时候,参数的类型,参数的个数以及函数的返回值方面也要从这个三方面着手。又因为可靠性比效率更重要,与交付足够快的可靠软件相比,交付快速但会崩溃的软件,从长远看来代价更高。

“程序能否更容易被阅读和理解,比使程序更容易被计算机编译更为重要。”

比如文中提到的一些细节方面,如变量的声明应该靠近于其第一次使用的地方(可能在代码块中);在可能的情况下,局部变量的声明在使用变量的复合语句的开始处;过程和函数的名称,应能反映过程完成的工作以及函数的返回值。

4、关于注释,如果代码很清晰,且使用了良好的命名和缩进惯例,则这样的代码通常是自明的。仅当进行解释时,(例如解释数据结构的细节,算法的特例以及异常情况)才需要注释。编译器无法检查注释是否与代码一致,误导的注释通常比没有注释更糟糕。

5、在谈到库函数strcpy将一个字符串复制到另一个字符串中并返回目标字符串的时候,有下列做法:

① char *strcpy(char dst[],const char src[])

{

int i;

for(i=0;src[i] !='\0';i++)

        {

dst[i]=src[i];

        }

dst[i]='\0';

return dst;

}

② char *strcpy(char *dst,const char *src)

{

char *s=dst;

while(*dst++=*src++);                              /*这里也有人用while((*dst++=*src++) !='\0'); 但这个在一些C编译器和相关工具中,在发现赋值操作的结果用作条件表达式时会发出警告,因为这种用法是一个常见的错误来源。*/

return s;

}

这个为指针版本,它使用通常的惯用法将赋值、指针递增和测试赋值操作的结果合并为单一的赋值表达式。








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于c语言接口网上的资料是少之又少,所以下面这些文字全是我一个字一个字打印上来的希望大家 能对的起我的付出: 现在的程序员都面临大量的关于应用程序接口(Application Programming Interface,API) 的信息,大多数人都会使用API和程序库,并在其所写的每一个应用程序中实现它们,但是很少人 会创建或发布新的能广泛应用的API,事实上,程序员似乎倾向与循环使用他们自己的东西,而不 愿意查找,能满足他们要求的程序库,这或许是因为写特定应用程序代码要比查找设计好的API容易。 这里我所提到的是一种基于接口与其实现的设计方法,并且通过对24个接口及其实现的描述详细地演示了这种方法,这些接口涉及到计算机领域的很多知识,其中包括数据结构,算法,字符串处理 和并发程序,这些实现并不是简单的玩具----它们是为了在你们所设计的软件代码中使用而设计的。(当然了我会通过阅读量来看是否继续发下去,人要少了我就没有必要浪费时间了) c编程语言对基于接口设计方法的支持是极少的。 而面向对象的语言,如c++,Modula-3,则鼓励将接口实现分离,基于接口的设计独立与任何特定 的语言,但是它要求程序员对像c一样的语言有更多的驾驭能力和更高的警惕性,因为这类语言很容易破坏带有隐含实现信息的接口,反之亦然。 然而一但掌握了基于接口的设计方法,就能够在服务于众多应用程序的通用接口基础上建立应用程序,从而加速开发,在一些c++环境中的基础类库就体现了这种效果。 增加对现有软件重用---接口实现库,能够减少初始开发成本,同时还能减少维护成本,因为应用程序的更多部分都建立在经过良好测试的通用接口实现上,这里我提到的接口是针对数据结构的,但它并不是数据结构,我重点将放在算法引擎----包装数据结构以供应用程序使用----而不在数据结构算法本身,接口的示例和实现都以literate程序的方式给出,换句话说就是源代码及其解释是按照最适合理解代码的顺序交织出现的。 下面我将我想要给大家讲的内容分一下类: 基础 1,接口实现 2,异常与断言 3,内寸管理 4,进一步内寸管理 数据结构 5,链表 6,表格 7,集合 8,动态数组 9,序列 10,环 11,位向量 字符串 12,原子 13,格式化 14,低级字符串 15,高级字符串 算法 16,扩展精度算法 17,任意精度算法 18,多精度算法 线程 19,线程 建议: 看到这里的朋友我相信对c语言都有了很长时间的学习 如果你还没有搞懂c语言的全部内容,我强烈建议你先别看这里
C语言接口实现是一种创建重用软件技术。通过定义良好的接口,可以在不改变实现细节的情况下,实现软件的修改和扩展,同时保证软件的稳定性。这个技术支持了C语言的广泛应用,成为各种操作系统、嵌入式系统、网络通信、数据库等领域的基础语言。 通过C语言接口实现,可以将软件划分为若干个独立的模块,避免了代码的重复和混乱。每个模块都有自己的接口,这个接口将模块的功能和与外部的交互描述清楚,从而使得其他的模块可以对其进行调用。通过定义和规范接口,可以降低不同模块之间的耦合度,同时便于软件的维护和扩展。对于某个模块的修改,不会影响到其他的模块,只需要按照规范修改接口,就可以实现软件的升级和重用C语言接口实现技术优势在于其灵活性、可复用性和可扩展性。模块的接口定义可以根据具体的需求进行设计,随着需求的变化和业务的扩展,可以重新定义接口。这种技术的另一个优势在于代码的复用,相同的代码可以被多个模块共享,提高了软件开发的效率和质量。这个技术还能够实现分布式的软件系统,将不同的模块放在不同的机器或的进程中运行,从而改善系统的可伸缩性和性能。 总之,C语言接口实现创建重用软件的一种重要技术。通过定义良好的接口,可以使软件的修改和扩展变得更加容易,同时也能提高软件的可维护性和可复用性。这种技术C语言的重要特点之一,我们需要深入了解其原理和实践方式,从而开发出高效、稳定和可扩展的软件系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值