在 python 源码中使用 __cplusplus
Posted
技术标签:
【中文标题】在 python 源码中使用 __cplusplus【英文标题】:use of __cplusplus in python source 【发布时间】:2017-01-24 08:26:28 【问题描述】:python源码中头文件中的如下有什么用
#ifdef __cplusplus
extern "C"
#endif
这是否意味着 Python 为我们提供了使用 C++ 编译器构建代码的功能。如果是,那么 使用 C 和 C++ 编译器构建 python 源代码有什么区别
【问题讨论】:
这意味着您可以使用 C/C++ 编译器构建 Python 本身。 我无法想象使用 C++ 编译器(用于基础 python)而不是 C 有什么好处。其中一个原因可能是允许用 C++ 编写的扩展模块使用它们。另见boost.org/doc/libs/1_39_0/libs/python/doc/index.html 【参考方案1】:Python API 仍然是纯 C。这些指令只允许在 C++ 代码中包含标头。
__cplusplus
宏是在使用 C++ 编译器编译代码时隐式定义的。所以这种方式extern "C"
规范只有在看到它的编译器会支持时才会添加。
【讨论】:
以上是关于在 python 源码中使用 __cplusplus的主要内容,如果未能解决你的问题,请参考以下文章