typedef void (* api_msg_decode)(struct api_msg_msg *msg);
static api_msg_decode decode[API_MSG_MAX] = {
  do_newconn,  //以下这些是函数指针
  do_delconn,
  do_bind,
  do_connect,
  do_disconnect,
  do_listen,
  do_accept,
  do_send,
  do_recv,
  do_write,
  do_close
  };
请问上面的typedef是怎么回事?是把void  DEFINE成了(* api_msg_decode)(struct api_msg_msg *msg); 吗? 这样作有什么意义?
另外下面那个数组是怎么回事?是函数指针数组?