Я бы набралdef control_cmd_t
, объявил бы control_cmds
как массив control_cmd_t
и разделил бы их. (Очень похоже на ответ Арку).
#include <stdio.h>
typedef struct control_cmd_t__ {
const char * cmd;
void (*cmd_fn)(int,char *(*)[],char*);
} control_cmd_t;
control_cmd_t control_cmds[]={
{"ANNOUNCE",control_announce},
{"SEND",control_send}
};
int main()
{
printf("sizeof control_cmd_t is: %ld\n", sizeof(control_cmd_t));
printf("sizeof control_cmds is: %ld\n", sizeof(control_cmds));
printf("number of elements in control_cmds is: %d", (sizeof(control_cmds)/sizeof(control_cmd_t)));
return 0;
}
Выход:
sizeof control_cmd_t is: 16
sizeof control_cmds is: 32
number of elements in control_cmds is: 2