В c есть очень простой способ обернуть функцию (для синхронизации / регистрации / и т. Д.)
с макросом
#define WRAP(func,args) \
...
func args /*call function with args num of args irrelavent*/ \
...
WRAP (some_func (arga_a, arg_b))
поскольку он расширяется до «func (args)»
Но со временем вы устали от недостатков макросов.
Есть ли способ сделать это простым способом с помощью функции, получающей указатель на функцию? Важно, чтобы она соответствовала функции с любым числом аргументов (ну, мы можем сказать меньше 7, если она поддерживает 0-6 аргументов. И без изменения функции.