
David A. answered 10/10/19
Experienced C++ tutor who loves to mentor and pass on my knowledge
typedef is a way to define your own type definition (type alias) to make declarations easier to read. So, in your case, the typedef is creating a type alias called "FunctionFunc", which is a "pointer to a function that takes no arguments and returns nothing (void)":
In the example above, I defined a variable (funcPtr) and initialized it to the address of the function (f). You may ask "why do this? Why not just call f directly?". The answer is that funcPtr is a pointer and therefore can be reassigned to point to another function of the same function prototype :)
I hope this helps!