社区
C语言
帖子详情
搞不懂,这样的函数:status = (*pHndl->pFncTable->pRun)(pHndl, pPrm)是怎么一回事?
fohonet
2007-05-18 04:12:09
搞不懂,这样的函数:status = (*pHndl->pFncTable->pRun)(pHndl, pPrm)
是如何定义,运用的 ?
哪里有这样类似的例子?
...全文
196
9
打赏
收藏
搞不懂,这样的函数:status = (*pHndl->pFncTable->pRun)(pHndl, pPrm)是怎么一回事?
搞不懂,这样的函数:status = (*pHndl->pFncTable->pRun)(pHndl, pPrm) 是如何定义,运用的 ? 哪里有这样类似的例子?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fohonet
2007-05-18
打赏
举报
回复
yoyo_alex_lw() ( ) 信誉:100 Blog 加为好友 2007-05-18 16:45:52 得分: 0
怎么可能找不到原型?首先,光标放在pHndl上,右键,查看声明,在找到的声明语句上,将光标放在pHndl声明的类型上,在右键查看声明,如此,在来一次,就可以了.
========================
声明是可以看到的,但是*pHndl->pFncTable->pRun 所指向的函数刚才没有找到
刚才看了下 应该是对 pHndl->pFncTable赋值来实现的,还是猜测,等待验证。
jixingzhong
2007-05-18
打赏
举报
回复
简单示例一下,
其实就结构体指针pHndl,其成员中有一个pFncTable结构体指针,
这个pFncTable结构体指针指向的结构体中有一个 pRun 成员,
pRun 成员它是一个函数指针。
这样,pHndl->pFncTable->pRun 获得函数入口地址,
(*pHndl->pFncTable->pRun)(pHndl, pPrm) 就是调用这个被指向的函数而已 ...
jixingzhong
2007-05-18
打赏
举报
回复
比如:
#include <stdio.h>
#include <stdlib.h>
int fun(struct Handl *pHndl , int n)
{
return n>0;
}
struct Handl
{
struct FncTable *pFncTable;
/*... other members*/
};
struct FncTable
{
int (*pRun)(struct Handl *, int);
void (*pExit)(void);
/*... other members*/
};
int main()
{
int status, pPrm=2;
struct Handl h1, *pHndl;
struct FncTable ftable;
ftable.pRun=fun;
h1.pFncTable=&ftable;
pHndl=&h1;
status = (*pHndl->pFncTable->pRun)(pHndl, pPrm);
printf("status = %d\n", status);
system("pause");
return 0;
}
yoyo_alex_lw
2007-05-18
打赏
举报
回复
怎么可能找不到原型?首先,光标放在pHndl上,右键,查看声明,在找到的声明语句上,将光标放在pHndl声明的类型上,在右键查看声明,如此,在来一次,就可以了.
fohonet
2007-05-18
打赏
举报
回复
又看了下,明白了。
pHndl->pFncTable被赋值一同类型的结构体,
此结构体含有三个指针成员,
*pHndl->pFncTable->pRun 就是指向其中一成员所指向的函数。
iu_81
2007-05-18
打赏
举报
回复
怎么可能啊
珍惜生命远离CPP
2007-05-18
打赏
举报
回复
你找找 怎么给 pRun 赋值 的?
这是一个指针当然不需要原型了
fohonet
2007-05-18
打赏
举报
回复
是这样的,
此处事调用,
可我竟然找不到此函数的原型,怎么办?
珍惜生命远离CPP
2007-05-18
打赏
举报
回复
猜测
pHndl是结构体或者类指针,
pFncTable又是一个结构体或者类指针
pRun函数指针
(pHndl, pPrm)函数的两个参数
Python库 |
prun
-0.1.0-py3-none-any.whl
资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:
prun
-0.1.0-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Maven集成测试:Apache Maven核心IT
Maven核心集成测试 如果要针对自定义版本的Maven运行集成测试,请使用以下命令: export MAVENCODEBASE=
您可以选择从此处构建Maven项目: mvn verify -P local-it -f "$MAVENCODEBASE" 现在运行(不要忘记更新版本!) mvn clean install -
Prun
-its,embedded -Dmaven.repo.local=`pwd`/repo -DmavenDistro="$MAVENCODEBASE/apache-maven/target/apache-mav
akkaTrader:我博客的一部分 - 见 http
阿卡交易者 我博客的一部分 - 见 运行: mvn -
Prun
test 执照:麻省理工学院
undertow-streaming:尝试从undertow流式传输
Undertow 流媒体示例 这提供了来自HttpHandler和Servlet流,既来自请求处理线程,也来自单独的线程。 跑步: mvn -
Prun
test 这将运行StreamingHandler ,并将从请求线程流式传输。 访问应该会为您提供流式内容。 要从单独的线程流式传输,请执行以下操作: mvn -Pon-thread,run test 不幸的是,这不起作用 - 从另一个线程访问Sender导致: java.nio.channels.ClosedChannelException at io.undertow.channels.DetachableStreamSinkChannel.write(DetachableStreamSinkChannel.java:184) at io.undertow.server.HttpServerExc
resty-gwt:像GWT-RPC一样,但具有RESTJSON的酷炫性
要了解更多信息,请访问 描述 RestyGWT是用于REST服务和JSON编码的数据传输对象的GWT生成器。 特征 生成基于异步Restful JSON的服务代理 Java对象到JSON编码/解码 易于使用的REST API 发行 mvn版本:准备-
Prun
-examples mvn版本:执行
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章