Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中使用C头_Python_C_Struct_Ctypes - Fatal编程技术网

在Python中使用C头

在Python中使用C头,python,c,struct,ctypes,Python,C,Struct,Ctypes,我们在C中定义了一些数据结构,但需要从C/C++以及Python代码中使用它。一般来说,C代码不是很复杂,我们讨论的是一些包含常量、枚举、“普通”结构和压缩结构的头文件。这些文件定义了两个软件部件之间的接口,这两个软件部件必须用于微控制器以及功能更强大的计算机,因此是C结构。我们希望使用结构来解码消息并使用名称访问不同的部分,而不是使用位掩码或类似技术 当然,我们可以将常量复制到python文件中,使用或使用类似于压缩结构的库从/转换为原始数据 但所有这些都包括编写高度冗余的代码,如果规范的一小

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

当然,我们可以将常量复制到python文件中,使用或使用类似于压缩结构的库从/转换为原始数据


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

谢谢您的链接,这些库非常有用。但我不知道如何使用它们以非冗长的方式访问结构。编写(或谷歌搜索)ctypes代码生成器。这里有一个旧的:。我也曾经写过我自己的。