API和ABI简而言之

时间:2016-02-16 10:40:03

标签: c++ api abi

请不能用简单的单词弄清楚什么是API和ABI(请不要使用维基百科定义),它们是内核的一部分吗?他们有功能吗?他们做了什么?

2 个答案:

答案 0 :(得分:1)

API是应用程序编程接口。它为不同的源级软件组件提供了相互通信的方法。

API的一个示例是库的头文件,它指定库提供的一组函数以及如何调用它们。例如,在C ++中:

//external_library.h
//Processes your data and writes the results to outputlog.txt
void ProcessMyData (std::string data);

这告诉程序员使用external_library他们可以调用一个名为ProcessMyData的函数。此函数接受std::string,不返回任何内容,并且(如果文档是最新的)将结果写入outputlog.txt

ABI是应用程序二进制接口。它为二进制组件提供了一种标准方式,可以与平台和彼此进行通信。

ABI的一个例子是System V ABI。这指定了各种细节,例如函数调用约定,二进制数据表示,目标文件格式,加载,链接等。您可以阅读AMD64处理器here的SysV ABI草案,以了解其内容。< / p>

答案 1 :(得分:0)

API 应用程序编程接口

这意味着程序员用来编写程序的函数和类。库提供的函数和类是 API

ABI 应用程序二进制接口。

这是编译程序后函数和类在内存中布局的低级方法。将已编译程序的一部分链接到已编译的库或已编译程序的另一部分,需要以相同的方式布置这些部分,以便所有内容正确地组合在一起。