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

标签 c

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

相关文章:

C strcpy 函数和 char*

c - 对不同类型的 `fscanf()` 使用 switch case

c - 动态内存分配给字符串,给出了不正确的大小

c - 将指向 C 结构的指针存储为整数

c - 如何将二进制数转换为有符号十进制数

mysql - 命名 fifo 管道是否使用磁盘写入和读取?

Java JNI C 程序适用于 Mingw32,但不适用于 Cygwin64

c - 如何以编程方式获取模块内的 apache2.conf 文件目录或路径?

c - 在 for 循环中使用 getch() 的重要性

C:如何尽可能高效地搜索字符的最后一次出现