static uint8_t togglecode[256] = {
[0x3A] CAPSLOCK,
[0x45] NUMLOCK,
[0x46] SCROLLLOCK
};
这里的[0x3A]
是什么意思?我只学过像int a[2] = {1, 2};
这样的语句
发布于 2012-03-24 14:50:17
这是在C99中引入的,它被称为designated initialiser。
它基本上允许你在一个数组中设置特定值,其余的作为默认值。
在这种特殊情况下,数组索引是键盘扫描码。0x3a
是CapsLock
密钥的scan code in set #1 (参见第10.6节),0x45
是NumLock
,0x46是ScrollLock
。
在上面的第一个链接中,它声明:
int a[6] = { [4] = 29, [2] = 15 };
等同于:
int a[6] = { 0, 0, 15, 0, 29, 0 };
有趣的是,尽管链接指出=
是必需的,但这里似乎不是这样。
https://stackoverflow.com/questions/9849719
复制相似问题