I want to declare a pointer type which point to a function, so I try:
typedef void (*print)(void);
works perfect
void (*print)(void);
The correct way is:
typedef void (*print_function_ptr)(void)
and its usage for variable/parameter declaration is:
print_function_ptr p;
You don't need a typedef to declare a variable. You can directly write void (*p)(void)
to declare a variable p
pointing to a function taking void
and returning void
. However to declare a type alias / name for a pointer to function, typedef
is the tool.
It does not mean anything it is not a valid C syntax.
Because it is not how C works. Typedefs in C mimics how variables are declared or defined.