请不能用简单的单词弄清楚什么是API和ABI(请不要使用维基百科定义),它们是内核的一部分吗?他们有功能吗?他们做了什么?
答案 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 应用程序二进制接口。
这是编译程序后函数和类在内存中布局的低级方法。将已编译程序的一部分链接到已编译的库或已编译程序的另一部分,需要以相同的方式布置这些部分,以便所有内容正确地组合在一起。