correct way to assign function pointer
c, function-pointers
Solution
`foo` and `&foo` values are equivalent in C and have same type.
The `&` operator here is correct but redundant.
Note that assigning a function pointer to a `void *` is not valid in C.
void *fp1 = foo; // invalid
int (*fp2)() = foo; // valid
int (*fp3)() = &foo; // valid
(These are actually declarations but the constraints of the assignment operator apply.)
Problem
I'm a little confused about the correct syntax for assigning a function pointer to a variable. If I have a function foo ``` int foo(); ``` and I am assigning a pointer to foo to variable bar ``` void * bar; ``` it does not seem to matter if I use ``` bar = foo; // or bar = &foo; ``` It seems to me that only one of these should be correct or am I missing something?