What's the difference between f1, (*f1), f2, (*f2) ? and what's the difference between (function) and (&function) ?
#include <iostream>
using namespace std;
void function (char *s) {
cout << s << endl;
}
int main () {
void (*f1) (char*) = &function;
void (*f2) (char*) = function;
f1 ("f1 function without dereference.");
(*f1) ("f1 function with dereference.");
f2 ("f2 function without dereference.");
(*f2) ("f2 function with dereference.");
return 0;
}