从结构定义中声明指向接受结构的函数的指针?

用户名

谢谢你的时间!我到处走走了很多,找到了几乎可以解决我的问题的答案,但还不完全是。

typedef struct
{
    int menuparams; //lots of these here
    void (*menufunction)(MENUSTRUCT);   //points to "void functionname(MENUSTRUCT *menu)"
}MENUSTRUCT;

我有一种情况要使用结构存储函数指针。我的代码读取这些结构的数组(检查每个结构中的变量),并在确定要使用的结构后,跟随其功能指针指向必要的功能。

但是,所讨论的函数接受指向该完全相同的结构类型的指针,因为它们可能需要对相同类型的另一个结构执行某些工作当遵循函数指针时,将传递此其他结构的指针。

我当前的实现似乎可行,但我想知道将来是否会给自己带来麻烦。它可以编译并正常运行,但在声明函数指针的行上收到以下警告:

警告:函数声明中的参数名称(无类型)

这是有道理的,因为在我完成声明之前,我的结构并不存在。但是我无法弄清楚如何最好地重写它,以使结构包含其自身类型的引用很高兴。我已经研究了结构的前向声明,但是如果我从上述实现中走得更远,编译器就会变得更加笨拙。

如果我尝试过:

typedef struct menu
{
    int menuparamss; //lots of these here
    void (*menufunction)(menu);  
}MENUSTRUCT;

它至少可以编译和工作,但具有相同的警告。

由于它似乎可以正常工作,但从技术上讲并不是世界末日,但是如果将来在某个时候,由于我的愚蠢,MCU可能自发起火,那我现在最好了!

洛皮塔尔

很简单,只需使用完整的类型名称,或向前声明typedef:

选项1:

typedef struct menu {
    int menuparamss;
    //Must use the whole type name, including the "struct" keyword
    void (*menufunction)(struct menu *);  //SHOULD BE A POINTER to the structure
}MENUSTRUCT;

选项2:

typedef struct menu MENUSTRUCT;

//Without typedef
struct menu {
    int menuparamss;
    void (*menufunction)(MENUSTRUCT*);  //SHOULD BE A POINTER to the structure
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从结构定义中声明指向接受结构的函数的指针?

来自分类Dev

如何为P / Invoke声明指向结构的指针?

来自分类Dev

如何声明指向易失性结构的指针

来自分类Dev

在类定义中声明指向要定义的类的指针

来自分类Dev

我该如何编写在模板类中声明的函数定义,以返回指向结构对象的指针?

来自分类Dev

C#无法在结构中声明指针变量

来自分类Dev

指向函数中的结构数组的指针

来自分类Dev

指向函数中的结构数组的指针

来自分类Dev

声明指向NULL的指针

来自分类Dev

在多次调用的函数中声明指针

来自分类Dev

如何在D lang中声明指向模板函数的指针?

来自分类Dev

指向C中的前向声明结构数组的指针

来自分类Dev

在结构内部声明结构时指向结构的指针

来自分类Dev

如何声明指向指针数组的指针

来自分类Dev

结构定义中的结构指针

来自分类Dev

指向C中结构的指针

来自分类Dev

在函数中设置指向结构体的指针的成员

来自分类Dev

指向结构中数组的C指针传递给函数

来自分类Dev

指向函数中结构元素字段数组的指针

来自分类Dev

指向结构的函数的指针,指向typedef的函数的指针

来自分类Dev

指向结构体中的指针的指针

来自分类Dev

指向结构指针的指针中的内存分配

来自分类Dev

C函数中的传递和重新声明指针

来自分类Dev

C函数返回指向结构的指针

来自分类Dev

如何从函数返回指向结构的指针?

来自分类Dev

c ++从函数返回指向结构的指针

来自分类Dev

C ++在函数中使用指向结构的指针

来自分类Dev

将结构(指向结构的指针?)传递给函数

来自分类Dev

声明指向函数返回数组的指针实际上是合法的吗?

Related 相关文章

热门标签

归档