函数指针学习笔记
昨天和室友讨论了函数指针的使用方法,感觉收获挺大的,于是把它整理成笔记,发到博客里。
就目前所接触过的情况,我觉得函数指针用法主要有以下两种:
(一 )以相同的接口,方便地进行各个模块的替换。
(二 )把函数指针作为形参,传给封装好的模块,实现用户不同的功能。
这样说有点抽象了,下面对这两种应用分别给出例子。
( 一 ) 以相同的接口,方便地进行各个模块的替换。
参考资料:
http://www.google.com/codesearch/p?hl=en#wxNDR0bxBmM/pub/videolan/x264/snapshots/x264-snapshot-20070428-2245.tar.bz2%7CVkYc4UgfDIA/x264-snapshot-20070428-2245/common/predict.c&q=x264_predict_4x4_init
Google 代码搜索 x264_predict_4x4_init 这是它的帧内预测代码,对函数指针 pf[]赋值,本文是其简化版。
转到这个网页之后,把代码框滚动条拉到最后面,看到 x264_predict_4x4_init()函数。
( 二 ) 把函数指针作为形参,传给封装好的模块,实现用户不同的功能。
总结:函数指针有两种妙用--
(1)模块的方便替换;
(2)功能的多样性和封装。