事实上,longjmp和setjmp玩得熟不熟与是不是C语言高手,不是因果关系。函数指针不仅是语法上的问题,更重要的是它是一个设计范畴。分开接口与实现的目标是要隔离变化。像桥接模式、策略模式、状态模式、代理模式等等,在C语言中,无一不需要利用函数指针来实现。现实世界中的对象处于层次关系的较少,处于对等关系的居多。也就是说,对象间的交互往往是双向的。这会加强对象间的耦合性。函数指针是解耦对象关系的最佳利器。一旦该对象有变化发生,其它对象要执行相应的操作。如何把这种耦合降到最低呢,signal机制是很好的办法。功能同样实现了,但它们之间的耦合度降低了。在C语言中,要解决以上这些问题,不采用函数指针,将是非常困难的。

C语言中函数指针与软件设计经验总结

C语言中函数指针与软件设计经验总结