| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5127 人关注过本帖
标题:[名词解释] 什么叫API
取消只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
结帖率:100%
收藏
 问题点数:0 回复次数:2 
[名词解释] 什么叫API
API,是“application programming interface”的首字母缩写,其概念解释如下:

n. A set of routines used by an application program to direct the performance of procedures by the computer’s operating system. Acronym: API. Also called: application program interface.


这是“应用程序接口”的意思。不知道为什么有人总说API只是Windows的系统接口,他们似乎不知道OpenGL之类也是API,DirectX也是API,而且两者是同一范畴而不同的API产品。说什么用API不是本事之类,有本事别用OpenGL。最简单的,你打开一个文件读写,都使用了API函数,自己不知道而已,连在cmd窗口上输出printf("Hello, world!")都使用了API,也是不知道而已。没有了API,基本上不用写程序了。

百度也发表API,供程序员使用百度的平台,你不用?新浪的微博也有API,你不用?要在AutoCAD上进行二次开发,你不用AutoCAD的API?其实,要写程序操作Office的文档,也是使用了Office API。你要写与这些应用环境打交道的程序,不学使用API,你想把它们全部自己做了才算完?语言学完了,不学这些东西,学啥!没有这些东西,靠C/C++那点能耐,出来能谋生?
搜索更多相关主题的帖子: computer 产品 procedures interface Windows computer 产品 procedures interface Windows 
2012-04-07 01:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
很早以前,在这里见过一个帖子,帖主好像是出来工作了一段时间吧,发帖说发现大多数时间都在学各种各样的API,觉得没意思,困惑学C的未来就是要这样?类似的思想,其实在很多帖子中也有流露,比如用Windows API的就说微软霸道,不屑用之,就不知道自己在用Linux的API了,说那才是正统。又如总见有人说,学C差不多了,要学数据结构、算法啥的,然后,然后不知道该是啥,但总不见有人说应该研讨实际环境中真正用到的API该怎么用。

[ 本帖最后由 TonyDeng 于 2012-4-7 15:27 编辑 ]

授人以渔,不授人以鱼。
2012-04-07 15:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
世界上的API数量巨大,单一某个系统的API也可能很复杂,没有谁可以全部精通,甚至连知晓都未必。其实,即使是C/C++语言提供的库函数,也没几个人敢说自己全部都知道并能熟练运用的,很多人,其实并不知道库函数已经提供了某种功能,还是一样当没有地去自己写一个,只要写得好,也不妨碍编程应用,最多浪费一点时间精力而已。同样,不会写替代函数的人,也可以多查资料、多问人,总有找到的时候,也同样不妨碍编程应用。因此,这里不存在什么高低层次问题,不能说其实已经有现成的就不需要写了,也不能说有现成的也不用非要自己写才是本事,没有这样的说法,只能是能满足应用、效果令人满意即可。

API,也有底层和高层之分的,中间件也一样是API。Win32 API是系统底层的API(类似与TC/BC时代的系统中断及其调用),而有时候其实并不需要知晓太多的底层API(视具体应用而言),一般而言,了解底层API也是为了做出高层封装而做的,封装完成,了解也就告一段落了,忘了也没关系,因为需要的高层函数已经有了,可以用了。这里,是看你封装得是否让自己满意。MFC是别人替我们封装好了一种Win32 API类库,同样.NET也是(替代MFC的另一种封装),我们平常都是用这个——在.NET未盛行之前,只有MFC封装,而MFC的封装并不太好,所以才有人说要直接用原始Win32 API,但现在其实没这种需要了。对游戏编程来说,其实用OpenGL或DirectX这样的API,比直接用Win32 API也来得好,正如用.NET比用Win32 API更好一样。

基本上,是用到什么就学什么,是需求驱动你去学习的,没有需求,学什么都是假的,不可能真正入脑,学了也不知道怎么用,等于没学。

[ 本帖最后由 TonyDeng 于 2012-4-7 23:39 编辑 ]
收到的鲜花
  • 小鱼儿c2012-04-07 23:43 送鲜花  49朵   附言:我很赞同

授人以渔,不授人以鱼。
2012-04-07 23:33
快速回复:[名词解释] 什么叫API
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012497 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved