这叫什么函数

[复制链接]
2054|12
 楼主| 电信小菜 发表于 2013-10-30 11:08 | 显示全部楼层 |阅读模式
void (* const USB_P_EP[16]) (uint32_t event) =
{                               
  P_EP(0),
  P_EP(1),
  P_EP(2),
  P_EP(3),
  P_EP(4),
  P_EP(5),
  P_EP(6),
  P_EP(7),
  P_EP(8),
  P_EP(9),
  P_EP(10),
  P_EP(11),
  P_EP(12),
  P_EP(13),
  P_EP(14),
  P_EP(15),
};
谁帮忙稍微解释一下
ayb_ice 发表于 2013-10-30 11:20 | 显示全部楼层
函数指针数组

评分

参与人数 1威望 +2 收起 理由
电信小菜 + 2

查看全部评分

bingmcu 发表于 2013-10-30 11:28 | 显示全部楼层
lhchen922 发表于 2013-10-30 12:42 | 显示全部楼层
diweo 发表于 2013-10-30 12:42 | 显示全部楼层
本帖最后由 diweo 于 2013-10-30 12:44 编辑

int add(int a,int b); ...
int sub(int a,int b); ...
int mul(int a,int b); ...
int div(int a,int b);  ...

int (*op[4])(int,int)={add,sub,mul,div};

int result;
result=(*op[0])(12,3);   //15
result=(*op[1])(12,3);   //9
result=(*op[2])(12,3);   //36
result=(*op[3])(12,3);   //4

评分

参与人数 1威望 +2 收起 理由
电信小菜 + 2

查看全部评分

 楼主| 电信小菜 发表于 2013-10-30 13:49 | 显示全部楼层
接1L:
if (USB_P_EP[m])    这个判断是什么意思
diweo 发表于 2013-10-30 14:28 | 显示全部楼层
判断是不是空指针

评分

参与人数 1威望 +2 收起 理由
电信小菜 + 2

查看全部评分

黄小俊 发表于 2013-10-30 19:27 | 显示全部楼层
outstanding 发表于 2013-10-31 08:29 | 显示全部楼层
函数指针数组
sunhq02 发表于 2013-10-31 08:32 | 显示全部楼层
楼主是故意逗大家玩的,一定
 楼主| 电信小菜 发表于 2013-10-31 12:00 | 显示全部楼层
sunhq02 发表于 2013-10-31 08:32
楼主是故意逗大家玩的,一定

你高估我了
McuPlayer 发表于 2013-10-31 12:16 | 显示全部楼层
使用下面的写法,可读性更好:

typedef void (* const PFUN) (uint32_t event);

PFUN  usb_p_ep[16] =
{                              
  P_EP(0),
  P_EP(1),
  P_EP(2),
  P_EP(3),
  P_EP(4),
  P_EP(5),
  P_EP(6),
  P_EP(7),
  P_EP(8),
  P_EP(9),
  P_EP(10),
  P_EP(11),
  P_EP(12),
  P_EP(13),
  P_EP(14),
  P_EP(15),
};
i55 发表于 2013-10-31 17:09 | 显示全部楼层
目测楼猪用谭浩强的书学的c语言,其实你要是用《pointers on c》来学的话就没这些问题了,讲得很清楚。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

236

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部