简体   繁体   English

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

[英]How to create function, returning pointer to another function without typedef in C?

For example I have following functions: 例如,我具有以下功能:

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

typedef char (*fptr)(int);

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

How can I get rid of typedef? 如何摆脱typedef?

You can get rid of them like this. 您可以像这样摆脱它们。 Third function returns pointer to function which returns pointer to function which retruns char. 第三个函数返回指向函数的指针,该指针返回指向重新运行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;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM