weeken2013 发表于 2013-3-26 16:51:18

关于结构体的那些事

下面代码是用C++编的啊,但小白我要用C实现啊,C的结构体内木有函数啊,我能在结构体内定义个指针指向结构体外的函数么??
using namespace std;
const int MAXN = 50010;
const int MAXK = 5;
const int MAXM = 10;

int n, m, k;
struct Point
{
    int p;
    inline void input()
    {
      for(int i=0;i<k;++i)
      {
            scanf("%d", &p<i>);
      }
    }
    inline void output() const
    {
      for(int i=0;i<k;++i)
      {
            if(i)
            {
                printf(" ");
            }
            printf("%d", p<i>);
      }
      printf("\n");
    }
}point, searchPoint;


foodszhu 发表于 2013-3-26 16:54:11

你写一个以结构体指针为参数的函数就好了吧。。。没必要照搬C++的

weeken2013 发表于 2013-3-26 17:13:38

foodszhu 发表于 2013-3-26 16:54 static/image/common/back.gif
你写一个以结构体指针为参数的函数就好了吧。。。没必要照搬C++的

能举个例子么~之前用Java比较多拐不过来

foodszhu 发表于 2013-3-26 17:36:04

weeken2013 发表于 2013-3-26 17:13 static/image/common/back.gif
能举个例子么~之前用Java比较多拐不过来
就是忽略掉内联。。然后把结构体变量当做参数传进去void input(struct Point *p)
{
       for(int i=0;i<k;++i)
       {
            scanf("%d", &(p->p));
       }
    }
}。

原本如果是p.input()这样调用。现在就是input(&p)这样调用了

论极语易 发表于 2013-3-26 19:23:43

函数指针。。

weeken2013 发表于 2013-3-26 19:38:11

论极语易 发表于 2013-3-26 19:23 static/image/common/back.gif
函数指针。。

求指点~求代码

论极语易 发表于 2013-3-26 19:45:16

weeken2013 发表于 2013-3-26 19:38 static/image/common/back.gif
求指点~求代码

我懒得写了……
这样,你把原本的函数写成全局,然后在结构体内,定义一个函数指针,指向这个函数就行了。然后掉用时,去掉用函数指针
这就是用C写面向对象的一个很基本的思路

weeken2013 发表于 2013-3-26 20:01:00

论极语易 发表于 2013-3-26 19:45 static/image/common/back.gif
我懒得写了……
这样,你把原本的函数写成全局,然后在结构体内,定义一个函数指针,指向这个函数就行了 ...

我先试试~#19m

weeken2013 发表于 2013-3-26 22:02:09

weeken2013 发表于 2013-3-26 20:01 static/image/common/back.gif
我先试试~

那怎么把结构体内的数组传给函数啊~

foodszhu 发表于 2013-3-26 22:11:53

weeken2013 发表于 2013-3-26 22:02 static/image/common/back.gif
那怎么把结构体内的数组传给函数啊~

我写的很明确啊。。。自己翻上去看。。

weeken2013 发表于 2013-3-26 22:43:15

foodszhu 发表于 2013-3-26 22:11 static/image/common/back.gif
我写的很明确啊。。。自己翻上去看。。

我有点理解不能啊~
struct Point
{
        int p;
};
结构体里边就剩这些了??

foodszhu 发表于 2013-3-26 23:54:42

weeken2013 发表于 2013-3-26 22:43 static/image/common/back.gif
我有点理解不能啊~
struct Point
{


当然只有数据了。。。你也只需要操作数据
面向对象只是种思维,不要强行把C++,或者java的面向对象套用在c中。。。
页: [1]
查看完整版本: 关于结构体的那些事