【问题标题】:share enum between c and python在 c 和 python 之间共享枚举
【发布时间】:2023-02-20 01:36:12
【问题描述】:

我有用于 python 服务器和 c 客户端之间通信的枚举。

我想将枚举放在单个文件中,更喜欢使用 python 枚举类。

此外,我更喜欢避免与 python 中 C 枚举的运行时解析混合。

【问题讨论】:

    标签: python c enums


    【解决方案1】:

    可选的解决方案是在 *.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 代码放在那里。

    这种结构的缺点是有点混乱,而且我没有找到使编号自动进行的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-10
      • 2014-05-21
      • 2021-06-01
      • 2017-10-22
      • 1970-01-01
      • 2012-03-19
      • 2011-12-15
      • 2015-06-09
      相关资源
      最近更新 更多