各位先进好,小弟在C上遇到一个关于nested-function的疑惑想请教
以下是jserv大在他的网页中提到的一份sample code
typedef int (*func_t)(int);
static func_t(int arg) {
int nested(int nested_arg) {
return (arg + nested_arg);
}
return &nested;
}
int main()
{
{
func_t = f(0x1ab);
printf("%d\n", (*g)(20));
}
printf("%d\n", f(400)(27));
printf("%d\n", f(f(400)(27))(20));
return 0;
}
这样单纯传value的nested-function是没有问题的
小弟依样画葫芦,做了一个传function的版本,以下是小弟自己的code
typedef void (*ret_func)(void);
typedef void (*work_func)(void *data);
void show_a(void *data)
{
printf("This is show_a function\n");
}
void show_b(void *data)
{
printf("This is show_b function\n");
}
ret_func func_gen(work_func func)
{
void inside_func(void) {
printf("