有时候定义一种结构体变量时,函数指针成员 ,如果想要所指向的函数的形参却是本结构体,这该如何去实现?
举例:
typedef struct
{
int value;
void (*pCallbackFuntion)(Struct_T * strct);
}Struct_T;
void main(void)
{
Struct_T tem;
}
编译时会出错 error: #20: identifier "Struct_T" is undefined.
解决办法是结构作向前声明。
修改如下:
typedef struct TemStruct Struct_T;
typedef struct TemStruct
{
int value;
void (*pCallbackFuntion)(Struct_T * strct);
}Struct_T;
即可。
本文探讨了在C语言中如何正确地定义包含自身类型的结构体,并使用该结构体作为函数指针参数的方法。通过向前声明的方式解决了编译错误的问题。
397

被折叠的 条评论
为什么被折叠?



