我收到了一个用 C 语言编写的微控制器项目。我是一个有成就的程序员,但不是这种语言。我“认为”我的问题与 C 语法(以及我缺乏理解)有关,而不是微控制器编译器,所以为了简洁起见,我将忽略编译器问题。
我正在尝试使用 Jagged/Ragged 数组来存储字体信息,以便快速调用以显示在 LCD 上。还有其他方法可以解决这个问题,但我有理由坚持这个概念。
对于这个例子,我们假设我的字体中只有三个字形(字符)。未知的是定义该字形的每一行的长度。例子:
字形 {A} 需要以下数据:{65,8,12,1,0,0x18, 0x3C, 0x66, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFF}
字形 {'} 需要以下数据:{39,2,3,4,9,0xC0,0xC0, 0xC0}
字形 {.} 需要以下数据:{46,2,2,4,0,0xC0,0xC0}
考虑到这一点,这是我的代码。
//This is where I attempt to make my Jagged array.
char X,Y, LeftOffSet, BaseOffSet;
char * font[3]={{46,2,2,4,0,0xC0,0xC0},
{39,2,3,4,9,0xC0,0xC0, 0xC0},
{65,8,12,1,0,0x18, 0x3C, 0x66, 0xC3, 0xC3, 0xC3, 0xC3, 0xFF, 0xFF}};
//None of these assignments work properly.
LeftOffSet=font[0][0]; // expected assignment = {46}
LeftOffSet=font[1][4]; // expected assignment = {9}
LeftOffSet=font[2][1]; // expected assignment = {8}
这段代码看起来有用吗?我似乎在抛出一个难以捕获的错误。作业没有按预期工作。当编译器遇到第一个时,它会重置项目。
在此先感谢您的帮助。