C++和Python使用同一个枚举的方法
来源:互联网 发布:剑网3正太捏脸数据 编辑:程序博客网 时间:2024/04/23 17:56
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会提示未声明解码方式。
程序内部需要接收脚本传过来的一些不同类型的消息,在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会提示未声明解码方式。
- C++和Python使用同一个枚举的方法
- 让C++和Python使用同一个枚举
- python多文件使用同一个全局变量的定义和使用方法
- C/C++枚举enum分别打印输出枚举子和枚举值的方法
- 使用枚举的方法
- 应用程序使用同一个TAG的Log方法
- C++/C枚举量的使用和讨论
- Swift 4 和 Objective-C 在同一个工程里的混搭编程的方法
- Python中枚举的使用
- Objective-C 枚举的使用
- 在同一个项目中使用Swift 和 Objective-C
- 同一个项目中使用Swift和Objective-C
- C#IO相关枚举类型和方法
- 同一个窗口中不同的按钮控件使用同一个storyboard的方法(WPF)
- 一种常见的python实现枚举方法
- 两个控件使用同一个对应函数的方法
- 枚举的使用和学习
- 枚举的使用和原理
- 内核定时器使用(example)
- 语音自动化之系统配置
- PHP 自动将图片转换成BASE64
- jvm源代码笔记 二
- jvm 源代码笔记 三 create_vm 主流程
- C++和Python使用同一个枚举的方法
- 内存与I/O操作
- VI打开和编辑多个文件的命令
- poj2586 典型贪心
- jvm 源代码笔记 四 jvm主要功能模块
- JSP 自定义标签
- SharePoint 2010之LINQ与SPMetal
- mysql中使用like模糊查询时如何转义%
- ajax的请求状态