在Python和C(和C扩展)中定义常量

时间:2015-01-13 11:02:04

标签: python c python-c-api

我有一个项目,其中有许多名称,目前是硬编码的。该项目是2/5 C,2/5 Python和1/5 Python C扩展代码。

我想"定义"这个项目有很多名字。我想的是两种通用格式:

// global.h
static const char[] FIELD_NAME = "__random_fields";
static const char[] DETERMINISTIC_NAME = "__non_random_fields";
static const uint32_t THISTHAT = 0x234;
static const float VERSION = 24.5;

代表C和Python:

# global.py
FIELD_NAME = '__random_fields'
DETERMINISTIC_NAME = '__non_random_fields'
THISTHAT = 0x234
VERSION = 24.5

我更愿意使用static const代替#define(对于C代码),但这只是个人偏好。

一种选择是使用中间表示并添加一些脚本魔术制作时解析以生成.h.py。这会重新发明轮子吗?是否有一些实现这一目标的一般策略或技巧?项目中有一些Java,所以使用.properties就行了,但是......问题仍然存在,我需要在格式之间做一些神奇的转换。

0 个答案:

没有答案