> > 函数指针是个有趣的东西。就像其他普通的指针一样,函数指针指向的 > 也是一块特定大小内存,但里面装的不是普通的数据,而是函数代码, > 也就是一段指令。假如你给人家提供了指向这段代码的函数指针,那人 > 家就可以来调用这个函数。 > > 这很有用。在GUI系统里面,通常有个概念叫做"callback"。GUI系统 > 自己本身就有能力去显示单独的一条线段,一个矩形,一个椭圆等等, > 这些东西实际上构成了整个用户界面。 > > 那比如,你按一个按钮下去,按照需求,当这个按钮按下去的时候,是要 > show出一个对话框。在这个对话框的左上角显示一个园,正中间显示一个 > 五边型,然后在最下面显示一条线段。那你就得自己编写一个函数,使用 > GUI系统所导出来的函数去实现这些画的动作。 > > 然后你把你写的函数的指针传递给GUI系统。在GUI系统检测到用户按下这个 > 按钮后,它会去通过函数指针调用你提供给它的这个函数,来实际画出整个 > 对话框,这就叫做 callback。 > 恩,我们之前在写 Win32 程序的时候,都是进行消息处理的。比方按扭被按下 了,系统会产生一个消息给窗口过程,然后在窗口过程中分别处理不同的消息。 这和你说的 callback 有异曲同工之妙啊,呵呵。