Возможно ли заменить все эти «if, else if ...» на массив указателей функций в этом примере кода?Array of function pointer
if (strncmp(buff, "ls\n", 3) == 0)
my_ls();
else if (strncmp(buff, "cd\n", 3) == 0)
my_cd();
else if (strncmp(buff, "user\n", 5) == 0)
my_user();
else if (strncmp(buff, "pwd\n", 4) == 0)
my_pwd();
else if (strncmp(buff, "quit\n", 5) == 0)
my_quit();
Я пытаюсь получить что-то вроде этого:
void (*tab[5]) (void);
tab[0] = &my_ls;
tab[1] = &my_cd;
tab[2] = &my_user;
tab[3] = &my_pwd;
tab[4] = &my_quit;
Возможный дубликат [Как я могу использовать массив указателей функций?] (Http://stackoverflow.com/questions/252748/how-can-i-use-an-array-of-function-pointers) – cerkiewny
Вам не нужна ссылка перед именем функции. – cerkiewny
@cerkiewny Не дубликат, так как этот вопрос действительно является проблемой ассоциативного массива. –