一万小时 / C语言中的“回调函数”学习

远没到拼智商的时候

C语言中的“回调函数”学习

2012-12-14 posted in [点滴技术] with tags: [C, callback, and pointer]

缘起

最近在做一个调用第三方库的项目,此库提供的接口是如下的结构体:

对于c语言这样的使用场景之前还是遇到的比较少的,特别是对于回调函数的 使用,所以决定学习下C中回调函数的使用。

心得

直接使用函数指针

这是一个很简单的使用函数指针的例子,但是函数指针的定义和声明显得 过于繁琐,所有有了typedef可以来简化。

使用typedef

使用struct来传递额外的参数

对于额外参数的传递,使用struct来作为数据结构的聚合还是比较合适的, 一个结构体中包含回调函数,回调函数所需要的参数等等。

总结

回调函数在各种语言中都有广泛的应用,特别是异步编程的流行,例如JS中 ajax的回调,或者各种事件机制下的调用等,总之C中的回调更加底层一些, 也能够更加了解C中的指针之强大。

参考资料

  1. typedef
comments powered by Disqus
Top

Press q to hide the help

Key Action Key Action
Small Scroll j Scroll Down k Scroll Up
Big Scroll b Scroll to Bottom t Scroll to Top
Post Navigation n Next Post(if exists) p Previous Post(if exists)
Page Navigation h Go to Blog's Home Page a Go to Blog's Archive Page
Page Navigation c Go to Blog's Category Page ? Show this help
Misc s Go to Search Box q hide the help