我对所有这些术语感到困惑:
ABI、调用约定和硬件架构。
ABI 与架构链接:x86-64 与 i386 具有不同的 ABI。但是你也可以定义自己的调用约定 cdecl ...
那么所有这些概念之间的联系是什么?哪个定义了另一个?
大多数情况下,我认为我对 ABI 感到困惑。你在调用约定的一部分里面放了什么?
谢谢
我对所有这些术语感到困惑:
ABI、调用约定和硬件架构。
ABI 与架构链接:x86-64 与 i386 具有不同的 ABI。但是你也可以定义自己的调用约定 cdecl ...
那么所有这些概念之间的联系是什么?哪个定义了另一个?
大多数情况下,我认为我对 ABI 感到困惑。你在调用约定的一部分里面放了什么?
谢谢
这是一个很大的话题,仍然给你一些指示:
ABI(应用程序二进制接口)涵盖了需要指定的细节,以便应用程序可以在某个系统(通常使用操作系统)上工作。所以,举个例子:
基本上,为了构建与其他一些组件(库、操作系统)一起运行的程序而需要了解的任何细节都可以包含在 ABI 中。一些 ABI 指定了更多细节,而一些 ABI 指定了更少的细节。
硬件架构也可以看作是一种规范,但级别更低(它是关于硬件而不是软件)。硬件架构指定了可用的指令集、内存层次结构以及如何访问外围设备等内容。对于一种硬件架构,可以有不同的 ABI-s。您也可以为多个(但通常是相似的)硬件架构使用相同的 ABI。