0
下面是提出這樣的問題: What is a 「callback」 in C and how are they implemented?回調函數誤解
,並在這一問題的答案之一是這樣的: (我稍微修改打印值也)
#include <stdio.h>
#include <stdlib.h>
void populate_array(int *array, size_t arraySize, int (*getNextValue)(void))
{
for (size_t i=0; i<arraySize; i++) {
array[i] = getNextValue();
printf("%d\n", array[i]); // This is what I added
}
}
int getNextRandomValue(void)
{
return rand();
}
int main(void)
{
int myarray[10];
populate_array(myarray, 10, getNextRandomValue);
}
現在我的問題是上面什麼是回調函數的用法,什麼時候我可以不用回調呢?
#include <stdio.h>
#include <stdlib.h>
void populate_array(int *array, size_t arraySize, int getNextValue(void))
{
for (size_t i=0; i<arraySize; i++) {
array[i] = getNextValue();
printf("%d\n", array[i]);
}
}
int getNextRandomValue(void)
{
return rand();
}
int main(void)
{
int myarray[10];
populate_array(myarray, 10, getNextRandomValue);
}
另外,你能給我一個迴歸函數的實例嗎?不能用簡單的函數來完成嗎?
回調基本上添加定製 –
和模塊化。 – nouney