确实也是这样,但遇到给函数指针类型、数组类型等定义别名的时候就要特别区分了 。如:
typedef char ARRAY20[20];ARRAY20 a1,a2; /* 等价于char a1[20],a2[20]; */
别问我为什么,就是这样的 。。。
回调函数的例子上面分析了那么多,可能很多朋友会觉得回调函数太麻烦了,没必要用 。但是现实是,回调函数在我们的C编程、嵌入式编程中用得很广泛 。
1、在C编程中
在C语言的通用工具库stdlib.h中,有如下一个函数原型:
void qsort(void *, size_t, size_t, int (comp*)(const void *, const void *));
这是在C通用工具库中声明的一个快速排序算法函数,其可以用来排序int类型、float类型以及字符串数据,可以按从小到大的顺序也可以按从大到小的顺序排序 。其关键在于函数指针comp指向的函数的具体实现 。
2、在嵌入式编程中
我们之前的笔记:【RT-Thread笔记】PIN设备中断配置中,就有用到回调函数 。RT-Thread给我们提供了PIN设备中断回调绑定函数:rt_pin_attach_irq
文章插图
文章插图
这是个中断实验,产生中断会回调我们的回调函数,所以可以在在我们的回调函数里做一些产生中断后需要做的操作 。比如我们在这个中断回调里打印一串字符串 。每当中断来时,就会打印该字符串:
文章插图
总结回调函数是一个很重要的知识点,我们需要掌握 。而回调函数又与函数指针联系密切,我们要努力把函数指针弄懂、用熟 。在C语言中,指针很重要,函数指针更重要 。正如前辈们常说类似这样子的话:不会C指针,就没学会C语言;不会函数指针,就不要称自己是C语言高手 。
在这几种方法中的分析中,其实回调函数更多的是体现出了软件分层的思想 。分层思想在我们软件开发中是一种很重要的思想,简单的分层我们都会,但是怎么才能算是分层分得很好呢?那就是不该动的地方不动,该动的地方才动,衔接得很好,就像上面的回调函数法 。
对于编程的学习,关于编程语言的学习,知识点就那么一点,很快就能学完了,但是真正灵活的、熟练应用起来真的是不容易,这需要我们大量地分析、思考、练习 。有时间的话我们也应该多读读一些关于软件设计思想的书籍,这也是我最近在读的一类书,学学前辈们总结出的一些精华知识 。
以上就是本次关于回调函数的笔记分享,如有错误,欢迎指出 。
推荐阅读
- 脚气怎么办 吃什么可以治疗脚气
- 春季饮茶选哪种?喝对了缓解春困、提气润脾
- 男孩子什么品质最吸引女生?
- 全球十大黑客
- C语言指针经典知识汇总
- 移动应用开发的六大编程语言
- 程序员告诉你微信营销号如何防封、解封
- 凉拌、炒菜、油炸,分别用哪种油更合适?
- 白粥、小米粥真的养胃吗?
- 洗车十大注意事项