根据我所做的阅读,Core Audio 严重依赖回调(和 C++,但这是另一回事)。
我理解设置一个由另一个函数重复调用以完成任务的函数的概念(有点)。我只是不明白它们是如何设置的以及它们是如何工作的。任何示例将不胜感激。
C 中没有“回调”——不比任何其他通用编程概念更多。
它们是使用函数指针实现的。这是一个例子:
void populate_array(int *array, size_t arraySize, int (*getNextValue)(void)) { for (size_t i=0; i<arraySize; i++) array[i] = getNextValue(); } int getNextRandomValue(void) { return rand(); } int main(void) { int myarray[10]; populate_array(myarray, 10, getNextRandomValue); ... }
在这里,该populate_array函数将函数指针作为其第三个参数,并调用它以获取用于填充数组的值。我们编写了回调getNextRandomValue,它返回一个随机值,并将指向它的指针传递给populate_array. populate_array将调用我们的回调函数 10 次并将返回的值分配给给定数组中的元素。
populate_array
getNextRandomValue