![]() |
1
4
有几种方法可以解决这个问题。这里有一个: 编辑——添加了通用层次结构
注意:所有函数调用都是尾部调用。这样可以很好地本地化您的“类”,以便如果您决定派生需要100个以上的方法/操作码,那么您只需要编辑用于定义操作码的方法和枚举(或其他)。 另一种更动态的处理方法是在每个“类”中都有一个父指针指向“类”,它可以处理它不能处理的任何事情。 二维表方法快速且灵活(派生的处理程序可能与操作码0的基处理程序不同),但它增长很快。 |
![]() |
2
1
我编写了一个小工具,它可以生成类似于您基于小型语言的简单实现的代码。语言刚刚指定了状态操作码操作关系,所有操作都只是符合typedef的C函数。 它没有处理HSM方面,但这将相对容易添加到语言中。 我建议采用这种方法——创建一种小的语言,它为您提供一种描述状态机的清晰方法,然后根据该机器描述生成代码。这样,当您需要在一个月后插入一个新的状态时,整个事情就不会乱成一团地进行编辑了。 如果您需要代码,请告诉我,我会确保它在某个地方仍然可用。 |
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |