LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 606|回复: 2

源代码请教(很cn的)

[复制链接]
发表于 2003-5-17 23:21:32 | 显示全部楼层 |阅读模式
typedef void(*PF)();
PF edit_ops[]={ //编辑操作
               &cut,&paste,&copt,&search
};

PF file_ops[]={
              &open,&append,&close,&write
};
说这是指向函数的指针的数组。麻烦帮我解释一下究竟是PF是数组还是*PF是数组啊,数组里面存的是什么内容等等
我是cainiao,刚学,鞋鞋。
发表于 2003-5-18 02:37:30 | 显示全部楼层
“鞋鞋”!呵呵,以后看清楚一点哦。

PF的类型是void (*)(),是一个无参数无返回值的函数的指针。
edit_ops和file_ops的类型是PF [],是PF类型的数组。

PF和*PF都不是数组,PF是函数的指针,*PF是函数的指针的指针,他们都是类型,不是变量,相当于int、char之类的类型说明符。

edit_ops和file_ops是数组变量,数组的元素是函数指针,也就是说数组的每个项是一个地址,这个地址指向一个函数,按你的初始化代码可以这样使用:(*edit_ops[0])(),这相当于cut(),也可以写成edit_ops[0](),不过一般不赞成这样写。
发表于 2003-5-18 13:26:00 | 显示全部楼层
呵呵,讲得够清楚
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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