我现在正在编写一个C/C++程序,它使用一个头文件中的一组^ {CD1>}s,比如说
typedef enum
{
POINT,
LINE,
AREA,
VOLUME
} domainType;
<>我的程序与各种其他语言(F77、F90、Python……)接口,我希望这些EnUM类型在C/C++头文件中定义一次,并用其他语言使用它们。我希望避免为我使用的每一种语言定义相同的“
enum
”类型(在其他语言中可能会有不同的调用…),因为这是一个非常容易出错的任务。有什么优雅的方法吗?你知道吗
Tags:
假设在所有语言中都将它们定义为逗号分隔的列表,则可以执行以下操作:
枚举.txt
Myfile.h
在C/C++中,这是可行的。但是我不知道你的其他语言是否有类似C/C++的类似功能。如果是的话,那么你可以这样做。你知道吗例如,我很肯定这在Java中是行不通的。你知道吗
否则,您只能在一些配置文件中定义它们并通过函数映射它们,但这样它们就不再是枚举了。如果这个例子是你所有的,那么它可能不值得努力,但如果你有数百个这样的名字,那么它可能是值得的。你知道吗
更新
考虑到这一点后,可能会有其他的方法,这将是一点工作,但可能是有用的。对于支持include的语言(如我上面所示),这种方法很好。对于其他语言,如Java、Python等,您可以编写一个简单的脚本来生成有效的源文件。我对java做了类似的事情,根据从数据库读取的定义,将数据库记录作为类生成。 如果您必须支持多种语言和/或经常修改枚举,这可能会很有用,因为您仍然需要维护一个源。你知道吗
采用针对Python的DevPlus方法,可以为枚举文本创建字典,如下所示:
然后可以使用“domainType”访问枚举。你知道吗
那是一种方法。我肯定还有一百万,因为这是Python。。。你知道吗
相关问题 更多 >
编程相关推荐