У меня работает с gcc 4.3.3 и -Wall
.
Хотя я думаю, что все версии C, которые когда-либо существовали, переписали параметры «значения» функции в качестве указателей, вы можете использовать более традиционное объявление:
void function(T thing, void (*f)(int a, int b, void *cl), void * cl)
Но, как я уже сказал, ваш пример отлично работает для меня, без изменений, кроме typedef int T
и map(1, ...)