把函数名告诉find()
假设你从原来的代码中提取出了搜索条件,并把它改写成函数:
int sports_no_bieber(char *s)
{
return strstr(s, "sports") && !strstr(s, "bieber");
}
现在,只要有办法把函数名作为参数传给find()
,就能在find()
中注入测试了。
只要能找到一种把函数名传给find()
的方法,以后就可以做任何类型的测试了。只要能写一个接收字符串并返回真或假的函数,就可以复用同一个find()
函数。
find(sports_no_bieber);
find(sports_or_workout);
find(ns_theater);
find(arts_theater_or_dining);
如何在形参中保存函数名?如果你有函数名,又如何用它来调用函数呢?