c、C++ 这用法麻烦解释下呢?

简书成研 2015-02-06 11:04:18
头文件:

#include <iostream>
using namespace std;


typedef int(FUNCPTRPA)(int rIndex);

typedef struct
{
int a;
int b;
}TEST1;

typedef struct
{
FUNCPTRPA*fun_send;
FUNCPTRPA*fun_reve;

int yx;
int yc;
union
{
TEST1 test1;
}test;

}TEST;

int syw_test_send(int rindex);
int syw_test_reve(int rindex);


实现:Test[1].fun_reve = syw_test_reve;
Test[2].fun_send = syw_test_send;
我的想法就是,应该掉这个函数和传参吧,可是又没执行这个函数,麻烦大神给指点下呢?


int syw_test_send( int rindex )
{
cout<<rindex<<endl;
return rindex;
}

int syw_test_reve( int rindex )
{
cout<<rindex<<endl;
return rindex;
}


void main()
{
TEST Test[3];
Test[1].fun_reve = syw_test_reve;
Test[2].fun_send = syw_test_send;
system("pause");
}
...全文
104 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
简书成研 2015-02-06
  • 打赏
  • 举报
回复
Test[1].fun_reve = syw_test_reve; Test[2].fun_send = syw_test_send; 这只是给结构体中的函数指针赋值, 并没有调用函数. 调用的方法见1楼. 有个疑问:你的结构体中定义的Union是干什么的?\ union 是我以后要封装的数据,现在是随便写的,现在没什么意义。 谢谢各位,懂了哈
lincolnandlinda 2015-02-06
  • 打赏
  • 举报
回复

    Test[1].fun_reve = syw_test_reve;
    Test[2].fun_send = syw_test_send;
这只是给结构体中的函数指针赋值, 并没有调用函数. 调用的方法见1楼. 有个疑问:你的结构体中定义的Union是干什么的?
此后三年 2015-02-06
  • 打赏
  • 举报
回复
先给函数指针赋值之后就可以像 1L那样调用了。 不过你的结构中搞的这个联合没多大意义撒。
帅得不敢出门 2015-02-06
  • 打赏
  • 举报
回复
Test[1].fun_reve(100); 就这样调就行了。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧