It is usually said callbacks are implemented with function pointers. When I check PortAudio’s source code, I see that callback function is declared as an ordinary function (not a f. pointer). Is it normal/legal/advisable?
typedef int PaStreamCallback(
const void *input, void *output,
unsigned long frameCount,
const PaStreamCallbackTimeInfo* timeInfo,
PaStreamCallbackFlags statusFlags,
void *userData );
It is fine as long as the parameter is used as
PaStreamCallback*(which is a pointer to a function), like