途中送信しちった

/* map.c */
struct {
  ID *id;
  char *name;
} MAP;
static struct MAP map[]={
  {&ID_HOGE,"hoge"},
  ...
};
ID map_ID(int n)
{
  return *map[n].ID;
}
const chat * map_name(int n)
{
  return map[n].name;
}

これでいいんじゃ?