gpt4 book ai didi

c - 如何定义返回函数指针的函数指针

转载 作者:太空狗 更新时间:2023-10-29 15:36:36 25 4
gpt4 key购买 nike

如何定义一个返回函数指针的函数指针?

typedef int(*a)(int,int);
a (*b)(int,int);

为什么这个可以用,下面这个不行?

(int(*a)(int,int) ) (*b)(int,int);

int(*)(int,int) (*b)(int,int);

( int(*)(int,int) ) (*b)(int,int);

最佳答案

正确的做法是:

int (*(*b)(int,int))(int,int);

您可以编译以下演示如何使用这两种方法的代码。为了清楚起见,我个人会使用 typedef 方法。

#include <stdio.h>

int addition(int x,int y)
{
return x + y;
}

int (*test(int x, int y))(int,int)
{
return &addition;
}

typedef int (*a)(int, int);

int main()
{
a (*b)(int,int);
int (*(*c)(int,int))(int,int);
b = &test;
c = &test;
printf(b == c ? "They are equal!\n" : "They are not equal :(\n");
}

关于c - 如何定义返回函数指针的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9441368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com