来自讨论别的地方:
C++没有标准的ABI(应用程序二进制接口)
但C也没有,对吗?
在任何给定的平台上它几乎都是如此。如果缺乏一种语言,它就无法作为跨语言交流的通用语言。
您对此有何看法?
C 没有定义 ABI。事实上,它竭尽全力避免定义 ABI。像我这样的人,他们的大部分编程生涯都花在了 16/32/64 位架构上的 C 语言编程上,这些架构具有 8 位字节、2 的补码算术和平面地址空间,他们通常会对阅读复杂的语言感到非常惊讶。当前的C标准。
例如,阅读有关指针的内容。该标准并没有说“指针是地址”这样简单的事情,因为这就是对 ABI 的假设。特别是,它允许指针位于不同的地址空间中并具有不同的宽度。
ABI 是从语言的执行模型到特定机器/操作系统/编译器组合的映射。在语言规范中定义 C 实现是没有意义的,因为这存在排除某些体系结构上的 C 实现的风险。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)