テキストベースのメニューシステムのナビゲーション情報を保存しようとしていますが、それを行うための最良の方法がわかりません。各メニューには状態番号が付けられており、それぞれが別の状態につながるいくつかのコマンドが含まれています。コマンドの数は状態ごとに異なり、コマンドの長さも異なります。「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];
ユーザーが有効なコマンドを入力したかどうかをテストするために、特定の状態のコマンドを簡単に索引付けできるように、ナビゲーション情報を保存したいと思います。
より良い方法はありますか、それとも私は正しい方向に進んでいますか?返信ありがとうございます。