1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
/*
* callback.c
*
* @copyright (C) 2021 SML# Development Team.
* @author UENO Katsuhiro
* @version $Id: callback.c,v 1.2 2007/04/02 09:42:29 katsu Exp $
*/
#include <stdio.h>
void f4(void)
{
printf("f4\n");
}
void f3(void(*f)(void(*)(void)))
{
printf("f3\n");
f(f4);
}
void f2(void(*f)(void(*)(void(*)(void(*)(void)))))
{
printf("f2\n");
f(f3);
}
void f1(void(*f)(void(*)(void(*)(void(*)(void(*)(void(*)(void)))))))
{
printf("f1\n");
f(f2);
}
void g4(void)
{
printf("g4\n");
}
void (*g3(void))(void)
{
printf("g3\n");
return g4;
}
void (*(*g2(void))(void))(void)
{
printf("g2\n");
return g3;
}
void (*(*(*g1(void))(void))(void))(void)
{
printf("g1\n");
return g2;
}
|