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
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.)