从 C 中的字符串调用函数

标签 c

在 C 语言中,如何通过名称作为字符串来调用函数?我有这个:

int main(int argc, const char *argv[])
{
    char* events[] = {
        "test",
        "test2"
    };

    int i = 0;
    for (; i < 2; ++i){
        char* event = events[i];
        // call function with name of "event"
    }
    return 0;
}

最佳答案

您可以做到,但没有太多内置功能可以提供帮助。

typedef struct { 
    char *event_name;
    void (*handler)();
} event_handler;

然后搜索 event_handler 的数组(或其他任何数组),当您找到正确的名称时,调用关联的函数。

关于从 C 中的字符串调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5875705/

相关文章:

创建矩阵和 free() 问题 - c

c - 为什么当我尝试 perror 函数时我的程序崩溃了?

c - 使用带有 uDMA 的 Stellaris/Tiva USB 库?

c - 接受通配符以打开文件

c - C 中重定向标准输入的输入验证

c - 从 C 文本文件中提取随机单词时出现段错误

在新的 linux 内核中转换旧的 init_timer

c - FFmpeg:对 av_frame_alloc() 的 undefined reference

删除一行的 C 代码

Java JNA UCHAR 和 PUCHAR