C の組み込みシステム用のコンパクトなデータ構造が必要です。ASCII コードを表すバイトを指定すると、関数はそのフォントの文字の 6 バイトのビットマップを返します。ROM にあるのは、0 ~ 9、'.'、':' などの一部の文字のビットマップのみです。
非効率的な解決策の 1 つは、文字ビットマップを格納する 2 番目の配列内のインデックスを指す最大の Ascii 値に等しい長さの配列を持つことです。たとえば、最初の配列には 1 バイトの要素が 128 あり、20 文字のビットマップが定義されている場合、2 番目の配列には 6 バイトの要素が 20 あります。最初の配列の要素値は 2 番目の配列のインデックスにマップされるため、ASCII 値が最初の配列の要素を選択し、その要素の値が 2 番目の配列のインデックス値として使用され、6 バイトのビットマップが取得されます。しかし、これは (最初の配列で) 約 100 バイトを無駄にします。
より良い方法はありますか?ありがとう
編集: @Brandon Yates の提案のように、switch ステートメントまたは同様のものを使用する必要があると考えています。