共有回帖数  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语言的全部内容,我强烈建议你先别看这里 
 这也是我到现在才发这个贴的原因,当然了现在发可能也有点早,我会看情况是否要把它写全 
简介: 
 首先声明这篇文章不是我写的,我只是改写了几句话,是大家非常熟悉的:David R.Hanson普林斯顿大学计算机科学系教授写的翻译是中国的周鹏等(你要不知道David R.Hanson是谁,那我劝你就从新在学一次c语言) 
 一个大型的程序通常是由许多小模块组成 
这些模块给出了程序中使用的函数,过程和数据结构,理想的情况下,大部分模块都是现成的并且 
都来自于库函数,只有那些正在开发的应用程序专用模块需要从头写,假设库代码已经彻底测试过 
,那么只有那些应用程序专用的代码才可能包含错误,因此程序调试可以只限定在这些代码中. 
 但是不幸的是,这些理论上的理想情况在实际开发中很少发生,大多数程序都是用头书写, 
而且一般都只在使用I/O和存储器管理等最低级设备是才会使用库函数,即使对这类低级组件, 
程序员也常常编写应用程序专用的代码;如: 
 在应用程序中,用定制的存储器管理函数替代c语言库函数malloc和free是经常会出现的. 
出现这些问题有以下几个理由: 
 其一是健壮性强,设计良好的通用模块库很少,其中一些可使用的库都很平庸而且缺少标准 
c语言从1989年就已经标准化了,但直到最近几年才出现大部分平台中。 
 另一个理由就是库的大小:一些库太大了以至于很难掌握,如果掌握这些库函数所需要的时间和努力接近编写应用程序所花费的精力,程序员很可能为了方便而重新实现他们所需要的那部分库函数(这点我本人深有体会)。 
 程序库的设计和实现是很困难的,设计者必须小心处理通用性,简单性和有效性问题 
如果一个程序库中的例程和数据结构太通用了,就有可能导致使用困难或难于达到它们想要达到的目的,如果它们太简单了,就可能不满足应用程序的使用需要,如果它们太易混淆编程者也不会使用它们,c语言本身有一些容易混淆的例子,如:realloc函数。 
 程序库的实现者面临着类似的困难。即使设计做的好,如果实现的不好也无法吸引用户。 
如果一个实现运行太慢或代码量太大-----或知识感觉上是这样------编程者也会设计他们自己的程序来代替库函数,最坏的情况是,如果一个实现有错误,那么它将打破上述理想状态并且使得程序库变的毫无用处。 
 这里描述了一个程序库的设计和实现,该程序库使用于用c语言编写的各种应用,这个程序库给出了一系列模块,为“小规模编程”(programming-in-the--small)提供函数和数据结构这些模块适用作应用程序中的“零件”或只有几千行的应用程序组件。 
 由于篇幅太长我又没有时间,难免有错误希望大家能够原谅
例1.1 literate 程序 
由英文和带标签的程序代码块组成。如: 
〈compute x.y= 
sum=0; 
for(i=0;in;i++) 
 sum+=x*y; 
这里我们定义了一个名为compute x.y的代码块;它的代码计算了数组x和y的点积.这个块的使用是通过在另一个代码块中调用它来实现的: 
function dotproduct= 
int dotProduct(int x[],int y[],int n){ 
 int i,sum; 
 compute x.y 
 return sum; 
} 
当代码块function dotproduct从包含该章的文本文件中提取出来的时候,它的代码被原样复制,块被其代码代替,以此类推。 
因此提取function dotproduct的结果是包含以下代码的文件; 
int dotProduct(int x[],int y[],int n){ 
int i,sum; 
sum=0; 
for(i=0;in;i++) 
 sum+=x*y; 
return sum; 
} 
好了由于时间的关系我今天就给大家举这么一个例子 
不知道大家是否明白了
3 回复:c语言接口与实现--创造可重用软件的技术  
 c闲人,能不能在帖几篇函数,和宏定义的文章?  
  
 作者: 218.82.185.* 2004-11-10 20:02   回复此发言  
这位朋友函数和宏定义一般来说入门书里都有介绍 
可能你没说清楚 
你是要找函数? 
那你看看assiss发过的函数大全吧 
可能对你有帮��
							 
							 
							 
							  
							  
							  楼主 2016-03-26 14:22 回复
						 
						 
           
          
          
         
   
         
      
 
   
             
                  
                  
 
 
 
     
	 
  
	Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
	
	意见反馈 | 
	关于直线 | 
	版权声明 | 
	会员须知