gpt4 book ai didi

c - 在 C 中存储带有参数的函数指针

转载 作者:行者123 更新时间:2023-12-02 07:17:00 25 4
gpt4 key购买 nike

我两天前才开始学习 C,很抱歉,如果这是一个愚蠢的问题,但我想尝试存储一个可以使用默认参数调用的函数。

目前,我有一个包含 2 个值的结构。一种是存储一个指针,一种是存储一个名为print的函数指针。

struct List{
int **ptr;
int (*print)(int**);
};

目前,我正在使用以下代码创建结构:

struct List list;
list.ptr = ptr;
list.print = (&printList);

其中 printList 是一个将指针作为参数并打印值列表的函数。

目前,当我使用参数调用函数时,代码可以正常工作

list.print(list.ptr);

但是,我希望能够这样调用它:

list.print();

这可能吗?如果是这样,你能给我一些关于如何实现它的想法吗?

谢谢!

最佳答案

Function pointer as a member of a C struct 所示:您可以更改函数,使其将结构作为参数而不是整数:

struct List{
int **ptr;
int (*print)(List*);
};


void printList(List* list);

struct List list;
list.ptr = ptr;
list.print = (&printList);

list.print(&list);

这不是你想要的,但它是我在 C 中能想到的唯一方法。

当你绝对需要它时,我建议使用 C++ 并创建一个类。

关于c - 在 C 中存储带有参数的函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60178033/

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