why function pointer to make it difficult ~ : from [Wikipedia - Function object](https://en.wikipedia.org/wiki/Function_object)

> A typical use of a function object is in writing callback functions. A callback in procedural languages, such as C, may be performed by using function pointers.[2] However it can be difficult or awkward to pass a state into or out of the callback function. This restriction also inhibits more dynamic behavior of the function. A function object solves those problems since the function is really a façade for a full object, carrying its own state.



1. why function pointer to make it difficult `pass a state into or out of the callback function` and `dynamic behavior of the function`

2. if function do not use function pointer how programs can called function