3.10.4 指向函数的指针数组
我们能够创建的一个更为有趣的结构是指向函数的指针数组。为了选择一个函数,只需要使用数组的下标,然后间接引用这个指针。这种方式支持表格式驱动码(table-driven code)的概念;可以根据状态变量(或者状态变量的组合值)去选择被执行函数,而不用条件语句或case语句。这种设计方式对于经常要从表中添加或删除函数(或者想动态地创建或改变表)十分有用。
下面的例子使用预处理宏创建了一些哑函数,然后使用自动聚合初始化功能创建指向这些函数的指针数组。正如看到的那样,很容易从表中添加或删除函数(这样,这个程序就具有了函数功能)而只需改变少量的代码:
当希望创建一些解释器或表处理程序时,可以想象这种技术是多么有用。