用指针引用函数

时间:2017-05-20 22:45:52

标签: c

  

(int(*)(void *,void *))(numeric?numcmp:strcmp));

numcmp和strcmp是带有两个参数的函数。

我理解条件运算符正在做什么。这很简单。

我可以推断这将评估为numcmp(void *,void *)或strcmp(void *,void *),但我不明白为什么?特别是:  int(*),让我困惑。

1 个答案:

答案 0 :(得分:3)

表达式(int ( * ) (void*, void*))只是对函数指针的强制转换,其中两个void*参数返回int。对于其他强制类型转换,语法类似于没有变量名的变量声明。然后根据布尔开关,决定要转换哪个函数。