I'm a little confused over how to declare a function pointer in a header file. I want to use it in main and a file called menus.c and declare it in menus.h I assume. We want to initialize to point to a certain function.
it looks like this:
void (*current_menu)(int);
What do we write in menus.c, menus.h and main?
A function pointer is still a pointer, meaning it's still a variable.
If you want a variable to be visible from several source files, the simplest solution is to declare it extern
in a header, with the definition elsewhere.
In a header:
extern void (*current_menu)(int);
In one source file:
void (*current_menu)(int) = &the_func_i_want;