函数名就是个指针,它指向函数代码在内存中的首地址.
| 1 | typedef double (*FuncType) (int data); | 
第一行定义了一种函数指针,类型为FuncType,它指向的函数返回为 double, 形参为一个int. 然后定义了一个名为func的函数. 
FuncType ptr = func;是声明一个指针, 类型为 FuncType, 指向func函数. 接下来就可以拿ptr当函数用了
| 1 | void test(int id, FuncType foo) | 
定义一个函数test, 它第二个形参是类型为FuncType的函数指针. 调用时, 最好对第二个形参做转换, 这里用static_cast再合适不过.
