首頁 後端開發 php教程 回呼函數和普通函數有什麼差別?

回呼函數和普通函數有什麼差別?

Jun 19, 2017 am 11:24 AM

普通函數回呼函數的區別:

對普通函數的呼叫:呼叫程式發出對普通函數的呼叫後,程式執行立即轉向被呼叫函數執行,直到被呼叫函數執行完畢後,再返回呼叫程式繼續執行。從發出呼叫的程式的角度看,這個過程為「呼叫-->等待被呼叫函數執行完畢-->繼續執行」

對回呼函數呼叫:呼叫程式發出對回調函數的調用後,不等函數執行完畢,立即返回並繼續執行。這樣,呼叫程序執和被呼叫函數同時在執行。當被調函數執行完畢後,被調函數會反過來呼叫某個事先指定函數,以通知呼叫程式:函數呼叫結束。這個過程稱為回呼(Callback),這正是回呼函數名稱的由來。

普通函數,回呼函數都是被其他函數呼叫的,不同之處在於呼叫者是否明確知道自己呼叫的到底是什麼,舉個例子:
void func1(){}
void func2(){}
typedef void (*fp)();//申明函數指標,fp表示一個空參數,傳回型別void的函式指標
void funcCaller1() {
//此處func1可以看成普通函數
   func1();//此處,funcCall1明確知道自己呼叫了func1
}
void funcCaller2(fp funcPtr){
funcPtr();//此處,funcCall2並不知道自己到底調用的是什麼,只知道自己呼叫了一個空參數的,返回類型是void的函數
}
void funcCaller3(){
//此處,funcCaller2是普通函數,func1是回呼函數
   funcCaller2(func1);//呼叫funcCaller2,參數是func1
//此處,funcCaller2是普通函數,func2是回呼函數
   funcCaller2(func2);//呼叫funcCaller2,參數是func2
}

#

以上是回呼函數和普通函數有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

java回呼函數怎麼寫 java回呼函數怎麼寫 Jan 09, 2024 pm 02:24 PM

java回調函數的寫法有:1、接口回調,定義一個接口,其中包含一個回調方法,在需要觸發回調的地方,使用該接口作為參數,並在合適的時機調用回調方法;2、匿名內部類回調,可以使用匿名內部類別來實現回調函數,避免創建額外的實作類別;3、Lambda表達式回調,在Java 8以上版本中,可以使用Lambda表達式來簡化回調函數的寫法等。

es6中箭頭函數和普通函數的差別是什麼 es6中箭頭函數和普通函數的差別是什麼 Mar 08, 2022 pm 12:11 PM

區別:1、箭頭函數的定義要比普通函數定義簡潔、清晰得多,很快捷;2、箭頭函數不會創建自己的this,而普通函數會;3、箭頭函數不能作為構造函數使用,而箭頭函數能作為建構函數使用;4、箭頭函數沒有自己的arguments,而箭頭函數有。

Java中回呼函數的基本語法與應用 Java中回呼函數的基本語法與應用 Jan 30, 2024 am 08:12 AM

Java回呼函數的基本寫法和使用方法引言:在Java程式設計中,回呼函數是一種常見的程式模式,透過回呼函數,可以將某個方法作為參數傳遞給另一個方法,從而實現方法的間接呼叫。回調函數的使用,在事件驅動、非同步程式設計和介面實作等場景中非常常見。本文將介紹Java回呼函數的基本寫法和使用方法,並提供具體的程式碼範例。一、回呼函數的定義回呼函數是一種特殊的函數,它可以作為參數

Vue組件通訊:使用回調函數進行組件通信 Vue組件通訊:使用回調函數進行組件通信 Jul 09, 2023 pm 07:42 PM

Vue組件通信:使用回調函數進行組件通信在Vue應用程式中,有時我們需要讓不同的組件之間進行通信,以便它們可以共享資訊和相互協作。 Vue提供了多種方式來實現元件之間的通信,其中一種常用的方式是使用回調函數。回調函數是一種將一個函數作為參數傳遞給另一個函數並在特定事件發生時被呼叫的機制。在Vue中,我們可以利用回調函數來實現元件之間的通信,使得一個元件可以在

分析常見的Python回呼函數應用場景 分析常見的Python回呼函數應用場景 Feb 02, 2024 pm 09:34 PM

Python中常見的回呼函數應用場景分析,需要具體程式碼範例回呼函數是指在程式設計中,將一個函數作為參數傳遞給另一個函數,並在某個特定的事件發生時執行這個參數函數。回呼函數廣泛應用於非同步程式設計、事件處理、GUI程式設計等領域。本文將分析Python中常見的回呼函數應用場景,並給出相關的具體程式碼範例。非同步程式設計在非同步程式設計中,回呼函數常用於處理非同步任務的結果。當需要執行一個耗

如何在 Golang 中使用資料庫回呼函數? 如何在 Golang 中使用資料庫回呼函數? Jun 03, 2024 pm 02:20 PM

在Golang中使用資料庫回呼函數可以實現:在指定資料庫操作完成後執行自訂程式碼。透過單獨的函數新增自訂行為,無需編寫額外程式碼。回調函數可用於插入、更新、刪除和查詢操作。必須使用sql.Exec、sql.QueryRow或sql.Query函數才能使用回呼函數。

事件驅動程式設計中Java回呼函數的應用領域 事件驅動程式設計中Java回呼函數的應用領域 Feb 01, 2024 am 09:07 AM

Java回呼函數在事件驅動程式設計中的應用回呼函數簡介回呼函數(callbackfunction)是一種在某個事件或操作發生後被呼叫的函數。它通常用於事件驅動程式設計中,其中程式在等待事件發生時會阻塞。當事件發生時,回呼函數就會被調用,程式就可以繼續執行。在Java中,回呼函數可以透過介面或匿名內部類別來實現。介面是一種定義函數簽章的機制,它允許一個類別實作另一個類別的

深入解析JavaScript中的回呼函數(同步與非同步) 深入解析JavaScript中的回呼函數(同步與非同步) Aug 04, 2022 am 10:05 AM

回調函數是每個前端程式設計師都應該知道的概念之一。回調可用於陣列、計時器函數、promise、事件處理。本文將會解釋回呼函數的概念,同時幫你區分兩種回呼:同步和非同步。

See all articles