我的一位老师使用这种类型声明:
typedef void (*SortFunction)(int a[], int n);
创建一个类型,该类型可以保存指向函数的指针,并且可以用于稍后在程序中调用该函数。
我也知道,要将函数作为参数传递,您必须将函数名括在括号中,并将函数的参数括在函数名之后的括号中,就像这样
function someFunction( (anotherfunction)(type arg1, type arg2,...)){
...
}
我想知道的是为什么你必须像这样在括号中包装一个函数?这是大多数 c++ 编译器的内置函数,还是我们程序员为了在代码中启用函数作为参数而使用的一种技巧?还有,为什么需要引用typedef语句中的“SortFunction”,为什么你用来利用SortFunction的变量不能只保存函数而不是指向它?