Я просто читал код в эмуляторе st terminal и наткнулся на этот синтаксис:
static void (*handler[LASTEvent])(XEvent *) = {
[KeyPress] = kpress,
[ClientMessage] = cmessage,
/* Removed some lines for brevity ... */
};
Я никогда не видел этот синтаксис в C, и я даже не уверен, что делать с Google. У меня есть общее представление о том, что он делает (определяя обработчик как массив указателей на функции), но я хотел бы лучше понять этот синтаксис. Он кажется действительным, по крайней мере, на C99, но я ищу еще несколько деталей, почему это правильно, как именно он работает и может быть указателем на стандарт C, где этот синтаксис определен.