1
|
Praetorian Luchian Grigore · 技术社区 · 15 年前 |
![]() |
1
1
对于没有关系或与其他单个字段没有关系的简单情况,可以向结构添加两个字段:“其他”字段编号和指向比较这两个字段的函数的指针。然后您需要创建比较两个值的函数,并根据关系是否满足返回true或false。那么,假设您需要创建两个函数来测试关系和关系的倒数(即,如果字段1需要大于字段2,那么字段2需要小于或等于字段1)。如果需要对范围设置多个限制,可以存储指向函数/字段对列表的指针。 另一种方法是为每个字段创建一个验证函数,并在字段更改时调用它。显然,这个函数可以像您想要的那样复杂,但可能需要更多的手工编码。 理论上,您可以根据所描述的XML描述为上述任何一种技术生成验证函数。 |
![]() |
2
0
我希望你现在能得到一些答案,但让我看看我能做些什么。 你的问题有点含糊,但听起来你想要一个
代码生成您说,您当前每次更改配置代码时都要手工处理配置代码。我敢打赌,这是一个高度重复的任务,所以没有理由你不能写程序来为你做这件事。生成器应该使用一些特定于域的语言,并发出C代码和头文件,这些文件随后将构建到应用程序中。我在这里说的一个例子是 GNU gengetopt . 使用XML作为输入语言的想法没有任何错误。 优势:
缺点:
扩展语言Tcl、python和其他语言与C代码配合良好,并允许您以动态语言指定配置行为,而不是乱搞C类型和字符串,以及…… 优势:
缺点:
微型语言您可以编写自己的嵌入式迷你语言。 优势:
缺点:
|
![]() |
3
0
结构从版本到版本的变化是多少?当我做这种事情时,我将它硬编码到PC应用程序中,然后计算出固件版本的包的含义——但是唯一的变化通常是每隔几个月在末尾添加一个额外的字段。 我想如果我想沿着元数据路径走下去的话,我会使用如下的方法。
|