小编Dan*_*iel的帖子

尝试在变量类型内使用void指针调用函数

在我编写的固件中,我创建了一种变量。类似于下面的内容:

    struct SitemMenu {
      unsigned int id;
      char * text;
      void * submenu
    }
    typedef struct SitemMenu TitemMenu;
Run Code Online (Sandbox Code Playgroud)

是任何功能:

    void functionX () {
      ...
    }
Run Code Online (Sandbox Code Playgroud)

如果我创建此变量:

    TitemMenu itemWhatever;
Run Code Online (Sandbox Code Playgroud)

并做:

    itemWhatever.submenu = &function (X);
Run Code Online (Sandbox Code Playgroud)

我可以打电话给functionX做吗:

    (*itemWhatever.submenu)();
Run Code Online (Sandbox Code Playgroud)

我做了类似的事情,编译器给出了这个答案:

    error: (183) function or function pointer required
Run Code Online (Sandbox Code Playgroud)

c struct function-pointers pic xc8

0
推荐指数
1
解决办法
51
查看次数

标签 统计

c ×1

function-pointers ×1

pic ×1

struct ×1

xc8 ×1