【发布时间】:2023-02-20 01:36:12
【问题描述】:
我有用于 python 服务器和 c 客户端之间通信的枚举。
我想将枚举放在单个文件中,更喜欢使用 python 枚举类。
此外,我更喜欢避免与 python 中 C 枚举的运行时解析混合。
【问题讨论】:
我有用于 python 服务器和 c 客户端之间通信的枚举。
我想将枚举放在单个文件中,更喜欢使用 python 枚举类。
此外,我更喜欢避免与 python 中 C 枚举的运行时解析混合。
【问题讨论】:
可选的解决方案是在 *.py 文件中包含枚举,C 文件可以包含该枚举,python 可以导入该枚举。
该文件将如下所示:
#if 0
"""
#endif
typedef enum my_enum{
#if 0
"""
from enum import IntEnum, unique
@unique
class MyEnum(IntEnum):
#endif
FIRST = 0,
SECOND = 1,
THIRD = 2,
#if 0
"""
#endif
}my_enum_e;
#if 0
"""
#endif
它背后的想法是 python 忽略所有的 c 预处理器命令,因为它们在 python 注释结构中,并忽略“”““””内的东西 - 我只在其中放置 C 代码。
另一方面,C 忽略#if 0 中的所有内容——我将 python 代码放在那里。
这种结构的缺点是有点混乱,而且我没有找到使编号自动进行的方法。
【讨论】: