读书人

关于C结构体中定义函数有关问题

发布时间: 2012-02-27 10:00:22 作者: rapoo

关于C结构体中定义函数问题
#include <stdio.h>
#include <stdlib.h>

struct test
{
int i;

void set();
};

void main()
{
}

提示说 “function cannot be member of struct 'test '”
C结构体中不是可以定义函数的吗?

[解决办法]
恩?我怎么没听说过?搂住说得是不是真的?
我只用过函数指针,再就是将结构体传给函数!搂住你再仔细确认一下!
[解决办法]
C++中struct里是可以定义成员函数,C中不行,不过你可以定义一个函数指针变量
struct test
{
int i;
void (*pfun)(struct test*, int);
}

void set(struct test* t, int n)
{
t-> i = n;
}

void f()
{
test t;
t-> pfun = set;
t-> pfun(&t, 2);
}

读书人网 >C语言

热点推荐