我正在尝试为基于文本的菜单系统存储导航信息,但不确定最好的方法。每个菜单都有一个状态编号,并包含几个命令,每个命令都指向另一个状态。命令的数量随每个状态而变化,命令的长度也是如此——“1”、“Y”、“myfilename”在不同点都是有效的命令。
我目前的想法是使用嵌套结构,并使用指针来应对可变命令长度/数量:
// Smallest useful unit - a single command-state pair
typedef struct {
char *command;
uint16 next_state;
} cs;
cs test1 = {"1", 100};
cs test2[] = {{"foo", 200}, {"bar", 201}};
// Every command-state pair for a particular state
typedef struct {
uint8 command_count;
cs *all_cs[];
} one_state;
one_state all_states[NUMBER_OF_STATES];
我想要的是以这样一种方式存储导航信息,以便通过特定状态的命令轻松索引,以便测试用户是否输入了有效命令。
有没有更好的方法,或者我在正确的轨道上?感谢您的任何回复。