我需要这样的东西:
char font[128][8] = {{0}};
font[0][] = {0, 0b00000000, 0b11111100, 0b00010010, 0b00010010, 0b11111100, 0b00000000, 0};
font[1][] = {...}
但是在c99中我得到了'{'token'之前的预期表达式。请帮忙。
答案 0 :(得分:1)
在声明数组时,您只能使用初始化列表({...}
),这就是您收到错误的原因。您无法为数组指定值,font[0]
是{a char[]
)。
您有3个选项:
char font[128][8] = {
{0, 0b00000000, 0b11111100, 0b00010010, 0b00010010, 0b11111100, 0b00000000, 0};
{...}
}
将每个值分别分配给数组中的元素:font[0][0] = x
,...,font[127][7] = y
(即使用循环)。
memcpy
一次阻止来自uint64_t
(sizeof(font[0]) = 8
),或者您可以整齐/有效地存储数据。
可能还值得注意的是,二进制常量是C扩展名,并且,如果您使用的是无符号数据,则应该明确使用{{1} }。char
已签名
答案 1 :(得分:0)
char font[128][8] = {
{0, 0b00000000, 0b11111100, 0b00010010, 0b00010010, 0b11111100, 0b00000000, 0},//font[0]
/*{...}*///font[1]
};
答案 2 :(得分:0)
尝试一下:
char font[128][8] = {{0}};
char a[8] = {0, 0b00000000, 0b11111100, 0b00010010, 0b00010010, 0b11111100, 0b00000000, 0};
//Take array a to store values
for(int i = 0;i<8;i++)
font[0][i] = a[i];
//Assign value of a to font