Часто полезно использовать typedef
с указателями на функции, чтобы вы могли назвать тип что-то описательным:
typedef void (*MenuFunction)(int);
Тогда у вас будет глобальная переменная этого типа, вероятно, в menus.c, и объявленная (с extern
) в menus.h:
static void my_first_menu_function(int x)
{
printf("the menu function got %d\n", x);
}
MenuFunction current_menu = my_first_menu_function;
Из main.c вы можете сделать:
#include "menu.h"
current_menu(4711);
для вызова любой функции, на которую указывает текущая функция, current_menu
.