在 Python 中使用 C 头文件

Fel*_* D. 5 c python struct ctypes

我们有一些用 C 定义的数据结构,但需要从 C/C++ 以及 Python 代码中使用它。一般来说,C 代码不是很复杂,我们讨论的是一些包含常量、枚举、“普通”结构和带有位域的压缩结构的头文件。这些文件定义了必须在微控制器和更强大的计算机上使用的两个软件部分之间的接口,因此是 C 结构。我们希望使用结构来解码消息并使用名称访问不同的部分,而不是使用位掩码或类似技术。

当然,我们可以将常量复制到 python 文件,使用python 的 struct 模块从/到原始数据转换,或者使用一些像bitstruct这样的来打包结构。

但所有这些都将包括编写高度冗余的代码,如果规范的一小部分略有变化,则需要在许多不同的文件和语言中进行更改。能否以更自动化、更不容易出错的方式完成?