如何创建函数,在C中没有typedef的情况下返回指向另一个函数的指针?

时间:2015-11-29 14:50:33

标签: c function pointers

例如,我有以下功能:

char ret_a(int x)
{
    return 'a'+x;
}

typedef char (*fptr)(int);

fptr hyperfunc(float a, int b)
{
    return &ret_a;
}

如何摆脱typedef?

1 个答案:

答案 0 :(得分:2)

你可以像这样摆脱它们。第三个函数返回指向函数的指针,该函数返回指向重新生成char的函数的指针。

char ret_a(int x)
{
    return 'a'+x;
}

char (*hyperfunc(float a, int b))(int)
{
    char (*fp)(int) = &ret_a;
    return fp;
}

char (*(*superhyper(double a))(float, int))(int)
{
    char (*(*fpp)(float, int))(int)=&hyperfunc;
    return fpp;
}