gpt4 book ai didi

c - 函数指针返回错误 (void *)

转载 作者:太空宇宙 更新时间:2023-11-04 01:28:50 25 4
gpt4 key购买 nike

由于我的程序中有一行,我收到一个编译错误,指出“‘foo’声明为返回函数的函数”:

typedef void * (* foo)(void *)(int);

其中 foo 是一个函数指针,指向一个接受 (void *) 类型和 int 并返回 (void *) 类型的函数。据我了解,上面的声明不是返回一个函数,而是一个指针。在这种情况下使用 typedef 有问题吗?这个函数指针和我一直使用的其他函数指针之间的唯一区别是 (void *) 参数,所以我认为问题与此有关。我在 Linux 机器上使用 gcc。

感谢您的帮助!

最佳答案

你的声明是错误的。错误消息是有道理的,因为 foo 在您编写时被声明为“指向函数接收 void * 并返回接收 的函数的指针的类型别名code>int 并返回 void *

如果函数接收到一个 void * 和一个 int,你应该这样:

typedef void *(*foo)(void *, int);

这基本上转化为“让 foo 表示指向接收 void *int 并返回 void * 的函数的类型指针”

关于c - 函数指针返回错误 (void *),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26693256/

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