static uint8_t togglecode[256] = {
[0x3A] CAPSLOCK,
[0x45] NUMLOCK,
[0x46] SCROLLLOCK
};
这里[0x3A]
是什么意思?我只学过像int a[2] = {1, 2};
这样的语句
static uint8_t togglecode[256] = {
[0x3A] CAPSLOCK,
[0x45] NUMLOCK,
[0x46] SCROLLLOCK
};
这里[0x3A]
是什么意思?我只学过像int a[2] = {1, 2};
这样的语句
这意味着初始化数组的第n个元素.你给出的例子意味着:
togglecode[0x3A] == CAPSLOCK
togglecode[0x45] == NUMLOCK
togglecode[0x46] == SCROLLLOCK
它们被称为"designated initializers",实际上是C99标准的一部分.但是,没有=
的语法是不正确的.从那一页:
另一种语法是在元素值之前写
[index]
,而不是=
,这种语法自GCC 2.5以来就已经过时,但GCC仍然接受.