# 17.1 为 CPython 编写 C 扩展

有几种方法可以扩展 Python 的功能。其中之一是用 C 或 C++ 编写 Python 模块。这种方法可以提高性能、更好地访问 C 库函数和系统调用。

如果你想写一个 C 扩展模块，那么你可以参考本书中涵盖的这些基本知识：

* “编译 CPython”章节中的**如何设置 C 编译器并编译 C 模块**；
* “准备你的开发环境”章节中的**如何为 C 设置开发环境**；
* “内存管理”章节中的“引用计数”小节的**如何增加和减少生成对象的引用计数**；
* “对象和类型”章节中的“对象和可变对象类型”小节的 **`PyObject *` 是什么及其接口是什么**；
* “对象和类型”章节中的“类型槽”小节的**类型槽是什么以及如何从 C 访问 Python 类型的相关 API**；
* “调试”章节中的**如何为扩展模块的 C 源文件添加断点并对其进行调试**。
