我两天前才开始学习 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/