【答疑解惑】什么是API?

有朋友在群里问什么是API?这个问题是很多初学者常常听到但又感觉讳莫如深。

API的英文是ApplicationProgramming Interface,也就是应用程序编程接口。以下选自百度百科对API的解释说明:

API(ApplicationProgramming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

简单的说就是为第三方提供具有特定功能或者实现的函数,一般情况下,该函数不对外提供源码,只有提供函数接口的参数和功能的详细说明。所有的系统平台都提供大量的API,比如Windows、Unix/Linux、Mac。除了系统平台,大量开源软件、中间件也提供许多API共用户调用以实现特定功能。下面我举一个典型的Windows API:

UINT WINAPI GetSystemDirectory(LPTSTR lpBuffer, UINT uSize);

说明:该函数获取Windows的系统目录。参数lpBuffer提供用于返回的系统目录,uSize表示lpBuffer控件的大小。如果你的Windows系统安装在C盘,返回结果应该是C:\Windows\System。

广义上说,各种编程语言提供的库函数也可以称为API,因为不管从哪个角度来说,它都满足API这个定义,只是我们常常把编程语言叫做库函数,本质上API也是以函数提供。只要你在编程,你就会使用API。

对于我们编程人员来说,就是要正确使用API才不至于导致错误,使用API需要注意的就是认真阅读API的各个参数、返回值、注意事项以及关系密切的API说明。只要注意到这些,绝大多数的API都难不倒你了。

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-09-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏linux、Python学习

Linux吃掉了我的内存

在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上...

1395
来自专栏unlike

用paxos实现多副本日志系统--multi paxos部分

上篇 basic paxos : https://cloud.tencent.com/developer/article/1147420

3208
来自专栏FreeBuf

PHP代码审计实战思路浅析

对于面向过程写法的程序来说,最快的审计方法可能时直接丢seay审计系统里,但对于基于mvc模式的程序来说,你直接丢seay审计系统的话,那不是给自己找麻烦吗?

1063
来自专栏Java帮帮-微信公众号-技术文章全总结

day28.Redis【Python教程】

下载:打开redis官方网站 https://redis.io/,推荐下载稳定版本(stable)

651
来自专栏编程微刊

基于promise用于浏览器和node.js的http客户端的axios

axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征:

1092
来自专栏北京马哥教育

Linux内存被吃掉了,它去哪里了?

在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上...

1152
来自专栏Crossin的编程教室

【Python 第20课】 命令行常用命令

【Python 第20课】 命令行常用命令 今天茬开话题,说一下命令行(Windows下叫“命令提示符”,Mac下叫“终端”)里的常用命令。已经熟悉同学可略过。...

3285
来自专栏蓝天

Unix&Linux下常见的性能分析工具介绍

Vmstat是一个很全面的性能分析工具,可以观察到系统的进程状态、内存使用、虚拟内存使用、磁盘的IO、中断、上下文切换、CPU使用等。系统性能分析工具中,使用...

741
来自专栏杨建荣的学习笔记

简单分析percona-zabbix-templates(r10笔记第6天)

当Zabbix和Percona两者相遇,会擦出不少的开源火花来,众人拾柴火焰高,最终受益的还是大部分运维人员。 我很早就用过Percona提供的...

3666
来自专栏腾讯DevOps

SVN切换到Git方法及坑点

SVN和Git同样都是在特定时代下比较优秀的版本控制系统,但是随着时代的发展,SVN越来越不能满足多人开发的需求,尤其是在多种多样,天马星空的业务场景面前,SV...

2795

扫码关注云+社区