让C++和Python使用同一个枚举

为了能快速修改程序的逻辑,我在C++ 程序中使用了 Python作为脚本。
程序内部需要接收脚本传过来的一些不同类型的消息,在C++ 程序中使用了枚举来区分这些消息。

于是编写脚本时想到:
如何能在Python中也使用这些枚举?如何只维护一个文件?

1.Python中没有枚举类型,所以打算在文件中直接写一些变量并赋值:

ENUM_VALUE1 = 1
ENUM_VALUE2 = 2
...

2.C++中的变量必须声明,所以只能使用枚举或宏定义,但是"#"在Python中是注释,所以只能使用枚举,所以我打算将定义文件写成上面那种形式(假设文件名:"Micro.py"),然后C++中:

enum
{
    #include "Micro.h"
}

但是 enum 中的每个定义后面都应该有逗号",",要不然C++中就无法编译通过了,所以我加入另一个文件"Comma.h",文件中只有一个逗号",",然后把定义文件修改成这样:

ENUM_VALUE1 = 1
#include "Comma.h"

ENUM_VALUE2 = 2
#include "Comma.h"
...

3.我们的定义文件中还应该有注释内容,要不然别人就看不懂这些定义到底代表啥意思了,考虑到C++中的注释用"//",Python中的注释用"#",而"#"在C++中是编译预处理指令的开始,所以我又把定义文件改写成这样:

#define _C_PY_DESCRIBE1 "宏定义描述1"
ENUM_VALUE1 = 1
#include "Comma.h"

#define _C_PY_DESCRIBE2 "宏定义描述2"
ENUM_VALUE2 = 2
#include "Comma.h"
...

结束了,呵呵,虽然很变态,但是至少实现了宏定义的统一;

其他:
1.文件扩展名只能保存为".py",所以C++中看不到语法高亮了。
2.如果注释中包含中文,那么宏定义文件应该保存为utf8格式,否则Python会提示
未声明解码方式。 

不知道怎么添加附件,代码放到了这里:

http://download.csdn.net/user/wsXiqiang/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值