You aren't calling the function, just "mentioning" the function name, which does nothing.
Code:
#include <stdio.h>
 
void foo()
{
    printf("X\n");
}
 
int main()
{
    void (*f)(void) = &foo; // don't actually need the &
 
    (*f)();  // the parens that contain the arguments (if any) constitute
             // the "function call operator"
 
    f();     // and you don't actually need the dereference operator
 
    return 0;
}