c++ - 不同的编程语言和调用约定

标签 c++ python c calling-convention

根据维基:

Different programming languages use different calling conventions, and so can different platforms (CPU architecture + operating system). This can sometimes cause problems when combining modules written in multiple languages

那么我在 Python 中调用 C/C++ 函数(从 .so/.dll 导出)时应该小心吗? 如果是,我应该注意什么?

最佳答案

Python 和 C 之间的调用是一个已解决的问题,因此您通常不必担心任何事情——尤其是因为 Python 是用 C 编写的。

当一个平台上的多种语言都是独立开发的,从汇编程序中单独引导时,所描述的问题就更多了。例如,众所周知,C 和 FORTRAN 之间以及 C 和 Pascal 之间的调用问题曾经是众所周知的,当时这三种语言大致相当。旧的 Mac 工具箱主要是使用 Pascal 调用约定用汇编程序编写的,早期的应用程序开发人员使用 Borland Pascal。但是后来像 Symatec 的 THINK C 这样的 C 编译器出现了,那些程序员不得不特别担心如何转换参数类型和字符串约定(Pascal 字符串在开头带有一个长度字节,当然 C 字符串在末尾有一个 0。)

关于c++ - 不同的编程语言和调用约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9170393/

相关文章:

python - 对统计处理的 R2 值使用 'groupby' - python

C - 从文件读取 - 为什么打印错误?

c - 如何在 Windows 2000 上以字节为单位获取硬盘大小?

c++ - 使用 opencv 链接到 vs 2013 中的 lib

用于在一组文件中查找一组字符串实例的 Python 脚本

python - 这个 python 语法是怎么回事? (c == c 在 s 中)

c++ - 循环内变量的定义

c++ - 分配指针?

c++ - 程序不能用较新版本的 g++ 编译

运算符[]的c++模板返回类型