c/c++语言开发共享在C中执行查找表的最佳方法是什么?

我正在开发一个嵌入式C项目。 我有一个LCD显示屏,每个字符有一个5×7点阵。 要显示特定字符​​,您必须以5个字节移动,这些字节与要打开的点相关联。 所以我需要使用一个键来制作某种查找表,我可以传入一个ASCII字符,并获得一个返回5个字节的数组…例如,调用这个函数就像这样,

GetDisplayBytes('A');

应该返回`这样的数组……

C[0] = 0x7E : C[1] = 0x90 : C[2] = 0x90 : C[3] = 0x90 : C[4] = 0x7E

在C中这样做的最佳方法是什么?

    我会为你想要使用的连续ASCII块创建数组。 数据。 像这样的东西:

     uint8_t displayBytesLetters[] = { 0x73, 0x90, 0x90, 0x90, 0x73, // 'A' . . . }; uint8_t displayBytesDigits[] = { 0x12, 0x15, 0x25, 0x58, 0x80, // '0' . . . }; 

    然后你的GetDisplayBytes()是这样的:

     uint8_t *GetDisplayBytes(char c) { if (isdigit(c)) return &displayBytes[5*(c - '0')]; else if (isupper(c)) return &displayBytes[5*(c - 'A')]; else return NULL; } 

    将返回的指针传递给任何函数输出数据:

     void DoDisplay(uint8_t *displayBytes) { int i; for (i = 0; i < 5; i++) { SendOutput(displayBytes[i]); } } 

     typedef char LCDDATA[5]; LCDDATA lcdTable[256] = { {0,0,0,0,0}, // char 0 {.....}, // char 1 } LCDDATA GetDisplayBytes(char chr) { return lcdTable[chr]; } 

    这基本上是一个数组的数组。

      以上就是c/c++开发分享在C中执行查找表的最佳方法是什么?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/562723.html

      (0)
      上一篇 2021年2月5日
      下一篇 2021年2月5日

      精彩推荐