void dispatch_for(dispatch_queue_t *queue, long number, void (* work)(long)){
int loop = number;
int i;
task_t *ctask;
for(i = 0; i<loop;i++){
ctask = create_task((void *)work,number,"for_test");
dispatch_async(queue,ctask);
}
}
task_t *task_create(void (* work)(void *), void *param, char* name){
//do something
}
我得到的工作作爲一個函數,需要將它傳遞給函數create_task。(第一個參數)
我應該如何傳遞?沒有括號的功能
傳遞函數作爲參數
'create_task'和'task_create'應該是相同的函數嗎? –
什麼是錯誤/問題?你應該能夠逐字通過「工作」。還要檢查你的拼寫,它是'task_create'還是'create_task'?儘管最好說'typedef void(* workfunction)(void *);',那麼你可以在必要時施加'(workfunction)work'。 –