现在重新做c开发上,又来谈谈回调函数的意义,网上找了一下,说的似乎都不是很清楚,虽然是个简单的知识点,说清楚总是必要的。
回调其实很好理解,回调和普通函数调用的区别,无非就是多了一个“回”。也就是说,调回来了。
举个例子。
借书流程开始,图书馆借书流程,去图书馆借书,发现书没了,你留了个电话,让书到了通知你,你再去借书。
这个电话就是你的函数指针。本来调用(图书馆的借书)这个函数,可以返回一本书,现在没书,你在参数里留下自己的手机号码。当书到的时候,这个函数通过(手机号码)来调用你,你接着把借书这个流程跑完。
从开始借书,图书馆又调用你让你回来拿书,最后把书借到手,被调用者(图书馆)调用了调用者(借书人)的处理,就是回调了。也是call back这个名称的由来。
ps.回调往往实现的是“命令模式”