求标准C结构体中使用函数. 指针指向后怎么在函数中使用结构体中数据? 求速

 我来答
jackwind1987
2013-03-04 · TA获得超过2738个赞
知道大有可为答主
回答量:1268
采纳率:50%
帮助的人:490万
展开全部
没有直接的办法,只能给那个函数传个参数

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;
}
White_MouseYBZ
2013-03-04 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6628万
展开全部
指针->结构体中的变量名,或,结构体变量量名.结构体中的变量名。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
__SevenMIT
2013-03-04
知道答主
回答量:33
采纳率:0%
帮助的人:24.7万
展开全部
下面是具体的例子
#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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Hello过客
2013-03-04
知道答主
回答量:68
采纳率:0%
帮助的人:13.1万
展开全部
在结构体中定义另外一个函数,使其访问结构体中的数据,并返回它,然后再在这个函数调用哪个函数
追问
貌似标准C ,不用C++可以?
追答
好吧,标准C中结构体是不支持普通函数的,反过来说,标准C中函数获取结构体数据,只能通过结构体变量获取,其解决办法有两种:
1.在函数内定义结构体变量
2.以参数的形式向函数传递结构体变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式