结构体中的函数如何访问本结构体中的成员变量?

时间:2022-06-15 10:30:56
我在C语言中一个结构体中
struct MyStrut
{
   unsigned char a;
   void (*Function)(void);
};

void Function(void)\
{
}
请问在结构体中的函数如何访问本结构体中的成员变量?

10 个解决方案

#1


传个参数进去吧。
void Function(MyStrut*)

#2


直接访问,与类函数访问自己的数据成员是一样的

#3


引用 1 楼 pengzhixi 的回复:
传个参数进去吧。
void Function(MyStrut *p)

在函数体重皆可以 用 p->a来调用了

#4



struct MyStrut
{
  unsigned char a;
  void (*Function)(MyStrut* pMyStrut);
};

void Function(MyStrut* pMyStrut)
{
pMyStrut->a = 3;
}

int main()
{
MyStrut my;
my.Function = *Function;
MyStrut* pmy = &my;
my.Function(pmy);
printf("%d",my.a);
    return 0;

}

#5


我想和正常的一样吧,先初始化结构体,在用.运算

#6


和访问变量一样,用.就行

#7


引用 3 楼 hnuqinhuan 的回复:
引用 1 楼 pengzhixi 的回复:
传个参数进去吧。
void Function(MyStrut *p)

在函数体重皆可以 用 p->a来调用了

正解

#8


我是想用结构体中的函数指针处理本结构体的成员. 而不是处理该类型结构体中的成员.

#9


就如C++中类成员函数处理本类成员变量就直接用this->a来做.

#10


学习一下!

#1


传个参数进去吧。
void Function(MyStrut*)

#2


直接访问,与类函数访问自己的数据成员是一样的

#3


引用 1 楼 pengzhixi 的回复:
传个参数进去吧。
void Function(MyStrut *p)

在函数体重皆可以 用 p->a来调用了

#4



struct MyStrut
{
  unsigned char a;
  void (*Function)(MyStrut* pMyStrut);
};

void Function(MyStrut* pMyStrut)
{
pMyStrut->a = 3;
}

int main()
{
MyStrut my;
my.Function = *Function;
MyStrut* pmy = &my;
my.Function(pmy);
printf("%d",my.a);
    return 0;

}

#5


我想和正常的一样吧,先初始化结构体,在用.运算

#6


和访问变量一样,用.就行

#7


引用 3 楼 hnuqinhuan 的回复:
引用 1 楼 pengzhixi 的回复:
传个参数进去吧。
void Function(MyStrut *p)

在函数体重皆可以 用 p->a来调用了

正解

#8


我是想用结构体中的函数指针处理本结构体的成员. 而不是处理该类型结构体中的成员.

#9


就如C++中类成员函数处理本类成员变量就直接用this->a来做.

#10


学习一下!