pythoncextension如何将Python字符串映射到C宏常量?

2024-05-29 11:44:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在包装一个遗留的C库。有几个头文件包含数千个宏常量,如:

#define FOO 1
#define BAR 2
#define BAZ 3

我希望Python中的用户能够指定字符串"FOO",它将在包装的C函数中作为1执行,例如mycmod.wrapped_function("FOO")

目前,我的库正在启动时用python解析这些头文件,并创建一个dict,如:

values = {"FOO": 1, "BAR": 2, "BAZ": 3}

这样,在python中,用户可以:

mycmod.wrapped_function(values['FOO'])

调用一个包装的C函数

这不是很好,因为我必须让头文件的解析器忽略注释,而且我还必须硬编码所有要解析到Python库中的头文件;如果有人添加了一个新的头文件,他们必须记住将其添加到解析器中

有没有更好的方法允许用户在Python中指定一个字符串,以某种方式映射到C中宏定义的常量


Tags: 函数字符串用户解析器foo头文件barfunction

热门问题