Callbacks

BBC BASIC for Windows supports callbacks but BBC BASIC for SDL 2.0 doesn't. This is largely because of the number of different ABIs that would need to be supported, and the difficulty (maybe impossibility) of achieving it in C.

Is there any way, in the C programming language, of calling a function whose signature (number and types of parameters) can be specified at runtime (e.g. in a variable of some sort) rather than explicitly (i.e. known at compile time)?

Is there perhaps some way in which the varargs feature of C could be leveraged to achieve this?