OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2777|回复: 2

求助指针操作的问题 如下文所示

[复制链接]

6

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-4-20
在线时间
11 小时
发表于 2017-8-10 16:04:49 | 显示全部楼层 |阅读模式
typedef struct
{
int cmd_head;//帧头
int msg_type;//消息类型
int param[10];//数据存储区
void(*cbActionListener)(int*);
int cmd_tail[4];//帧尾
}CmdObject,*PCmdObject;
这个结构体中void(*cbActionListener)(int*);这句话是什么意思?是怎么分解理解的?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-6-1
在线时间
14 小时
发表于 2017-8-10 18:28:19 | 显示全部楼层
本帖最后由 罗马的猫 于 2017-8-10 18:33 编辑

这是一个函数指针

函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。
C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。
int func(int x); /* 声明一个函数 */
int (*f) (int x); /* 声明一个函数指针 */
f=func; /* 将func函数的首地址赋给指针f */
或者使用下面的方法将函数地址赋给函数指针:
f = &func;
赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。

来自百度,自己搜



回复 支持 反对

使用道具 举报

29

主题

311

帖子

0

精华

高级会员

Rank: 4

积分
747
金钱
747
注册时间
2016-5-21
在线时间
199 小时
发表于 2017-8-10 18:52:09 | 显示全部楼层
我就说过,你们学这些单片机之前先把C语言基础搞一搞,不会走就先去跑,摔跟头倒是没什么,多浪费时间啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-20 12:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表