当前位置: 代码迷 >> C语言 >> 结构体内定义函数怎么编译报错
  详细解决方案

结构体内定义函数怎么编译报错

热度:449   发布时间:2008-06-23 18:19:03.0
结构体内定义函数怎么编译报错
#include<stdio.h>
struct stu
{
   int id;
   int age;
   int gd;
   int exit(void);
};
struct stu s;
struct stu *p;
p=&s;


int main()
{  
  printf("%d",p->exit);
  return 0;
   
}
int exit(void)
{
     int k=20;
     return k;
}
field `exit' declared as a function
搜索更多相关的解决方案: int  函数  定义  exit  stu  

----------------解决方案--------------------------------------------------------
struct stu
{
   int id;
   int age;
   int gd;
   int exit(void);//???
};
----------------解决方案--------------------------------------------------------
我也同意ls的……
----------------解决方案--------------------------------------------------------

那请问要怎么在结构体内定义一个函数
----------------解决方案--------------------------------------------------------
int stu::exit(void)
{
     int k=20;
     return k;
}

  printf("%d",p->exit());
----------------解决方案--------------------------------------------------------
p=&s;这行语句麻烦写在main里面……
----------------解决方案--------------------------------------------------------
那C里面没有::,那怎么定义
----------------解决方案--------------------------------------------------------
你也知道没有啊
那你还这么写?
----------------解决方案--------------------------------------------------------
那要在结构体里面定义一个函数成员,怎么定义啊?
或者定义一个指向函数的指针也可以啊
----------------解决方案--------------------------------------------------------
在C语言的结构里面定义一个函数。。虽然C语言不像C++那样支持在结构里面定义函数。。但是你可以通过定义一个函数指针来实现。。如果有必要的话
在结构里面定义void (*pf_exit)(void);
调用的时候
(*stu.pf_exit)();
oh yeah你试试吧
----------------解决方案--------------------------------------------------------
  相关解决方案