我必须定义对象的高级定义,例如:
obj1 => [
name => "object1",
type => "uint64",
dependents => [
{type => "unit32", name => "dep1"},
{type => "uint32", name => "dep2"}
],
default_value = "100"
]
由此我想生成 C 结构和一些辅助例程,例如:
struct_dependents {
int type;
char name[MAX];
}
struct struct_obj1 {
char name[MAX];
int type;
struct dependents deps[MAX_DEP];
unit64 default_value;
}
// Some initializations..
早些时候我认为我可以在 .pm(perl 模块)文件中定义高级对象,然后使用 perl 生成 C 代码,但是如果对象定义,以这种方式编写代码来生成 C 代码可能容易出错并且难以维护 future 的变化。
我想知道的是 - 是否有现成的工具可以让我们编写高级对象定义并自动生成它们的 C 结构?
最佳答案
C 有很多代码生成器——您更有可能找到使用 xml 等中间语法的东西;一个快速谷歌出现了xml2c .您可以使用 XML::Simple 将哈希值保存到 xml。
更多examples可以在谷歌上找到。
如果您希望推出自己的代码生成,使用模板工具包可提供 flexible方法。
关于c - 从对象的高级定义生成 C 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26332548/