求标准C结构体中使用函数. 指针指向后怎么在函数中使用结构体中数据? 求速
展开全部
没有直接的办法,只能给那个函数传个参数
struct Cat {
int id;
void (*voice)(struct Cat* c)
};
void cat_voice(struct Cat* c) {
printf("miaomiao, i am cat %d\n", c->id);
}
int main() {
struct Cat cat;
cat.voice = cat_voice;
cat.voice(&cat);
return 0;
}
struct Cat {
int id;
void (*voice)(struct Cat* c)
};
void cat_voice(struct Cat* c) {
printf("miaomiao, i am cat %d\n", c->id);
}
int main() {
struct Cat cat;
cat.voice = cat_voice;
cat.voice(&cat);
return 0;
}
展开全部
指针->结构体中的变量名,或,结构体变量量名.结构体中的变量名。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
下面是具体的例子
#include <stdio.h>
typedef void (*fun)(void);
struct S
{
void (*pfun)(void);
}a;
void func(void)
{
printf("hello world\n");
}
int main()
{
a.pfun = func;
a.pfun();
return 0;
}
#include <stdio.h>
typedef void (*fun)(void);
struct S
{
void (*pfun)(void);
}a;
void func(void)
{
printf("hello world\n");
}
int main()
{
a.pfun = func;
a.pfun();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在结构体中定义另外一个函数,使其访问结构体中的数据,并返回它,然后再在这个函数调用哪个函数
追问
貌似标准C ,不用C++可以?
追答
好吧,标准C中结构体是不支持普通函数的,反过来说,标准C中函数获取结构体数据,只能通过结构体变量获取,其解决办法有两种:
1.在函数内定义结构体变量
2.以参数的形式向函数传递结构体变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询