returnType (*variableName)(parameterTypes) = function_name;
static returnType (* const variableName)(parameterTypes) = function_name;
returnType (*arrayName[])(parameterTypes) = {function_name0, ...};
int my_function(returnType (*parameterName)(parameterTypes));
returnType (*my_function(int, ...))(parameterTypes);
... (returnType (*)(parameterTypes))my_expression ...
typedef returnType (*typeName)(parameterTypes);
typedef returnType typeName(parameterTypes);