callback函式,callback函式怎麼用啊,不太明白

時間 2022-03-29 12:35:03

1樓:

callback函式,是由系統呼叫的。程式設計師只負責編寫callback函式,並註冊到系統中,由系統呼叫。

比如:系統中有兩個函式:resizewindow(), registercallback()

function (*rsw)(int x, int y);

rsw gcb;

function resizewindow(int x, inty)function registercallback( rsw cb)你可以編寫一個callback函式

function mycb(int x, int y)然後,你的程式一段**為:

// ...... code

registercallback(mycb);

resizewindow(5,6);

希望說清楚了。

2樓:匿名使用者

callback函式:即**函式。

**函式就是一個通過函式指標呼叫的函式。如果你把函式的指標(地址)作為引數傳遞給另一個函式,當這個指標被用為呼叫它所指向的函式時,我們就說這是**函式。**函式不是由該函式的實現方直接呼叫,而是在特定的事件或條件發生時由另外的一方呼叫的,用於對該事件或條件進行響應。

**函式實現機制:

[1]定義一個**函式;

[2]提供函式實現的一方在初始化的時候,將**函式的函式指標註冊給呼叫者;

[3]當特定的事件或條件發生的時候,呼叫者使用函式指標呼叫**函式對事件進行處理。

**函式使用優點:

因為使用此函式可以把呼叫者與被呼叫者分開,所以呼叫者不關心誰是被呼叫者。它只需知道存在一個具有特定原型和限制條件的被呼叫函式。簡而言之,**函式就是允許使用者把需要呼叫的方法的指標作為引數傳遞給一個函式,以便該函式在處理相似事件的時候可以靈活的使用不同的方法。

callback函式怎麼用啊,不太明白

3樓:匿名使用者

callback函式,是由系統呼叫的。程式設計師只負責編寫callback函式,並註冊到系統中,由系統呼叫。

比如:系統中有兩個函式:resizewindow(), registercallback()

function (*rsw)(int x, int y);

rsw gcb;

function resizewindow(int x, inty)// resize window

gcb(orgx, orgy, x, y);

function registercallback( rsw cb)gcb=cb;

你可以編寫一個callback函式

function mycb(int x, int y)// code

然後,你的程式一段**為:

// ...... code

registercallback(mycb);

resizewindow(5,6);

希望說清楚了。

4樓:匿名使用者

**函式

比如在嵌入式中,給耳機中斷註冊一個callback函式,這樣,當任何時候有耳機插入時,程式就執行這個callback函式,這時你就可以在callback函式中處理你要乾的事情,比如彈出對話方塊提示插入耳機屬**

5樓:狗且偷生丶

callback, 顧名思義, **函式.

即需要傳遞該引數的函式執行完成後, 自動呼叫的一個函式. 明白?

matlab 的 callback函式.

6樓:隨便什麼名啦啦

callback函式,即**函式,是一個通過函式指標呼叫的函式。如果你把函式的指標(地址)作為引數傳遞給另一個函式,當這個指標被用為呼叫它所指向的函式時,我們就說這是**函式。**函式不是由該函式的實現方直接呼叫,而是在特定的事件或條件發生時由另外的一方呼叫的,用於對該事件或條件進行響應。

實現的機制:

1、定義一個**函式;

2、提供函式實現的一方在初始化的時候,將**函式的函式指標註冊給呼叫者;

3、當特定的事件或條件發生的時候,呼叫者使用函式指標呼叫**函式對事件進行處理。

7樓:匿名使用者

matlab 的 callback函式是**函式,就是一個通過函式指標呼叫的函式。

如果把函式的指標(地址)作為引數傳遞給另一個函式,當這個指標被用為呼叫它所指向的函式時,我們就說這是**函式。**函式不是由該函式的實現方直接呼叫,而是在特定的事件或條件發生時由另外的一方呼叫的,用於對該事件或條件進行響應。

實現的機制

1、定義一個**函式;

2、提供函式實現的一方在初始化的時候,將**函式的函式指標註冊給呼叫者;

3、當特定的事件或條件發生的時候,呼叫者使用函式指標呼叫**函式對事件進行處理。

什麼是**函式,英文用callback,為什麼叫**函式,有什麼實際的功能?

8樓:匿名使用者

把你寫的程式和系統已經封裝好的函式看成兩個部分你的程式使用系統的函式 那叫 呼叫

系統函式使用你的程式函式 就叫**

一般多用於系統函式與你的函式要進行非同步處理比如按鍵事件,其實是個訊息

你的函式比按鍵事件更早存在

所以你要將這個函式做為**函式提交給系統,然後系統在接收到按鍵事件後,再呼叫你的函式

9樓:我不知道啊

main函式呼叫了一個api函式a,而a只是個框架,真正的功能需要b來執行,且b的地址是作為一個a的引數傳入的,那麼這個b就是a的**函式了

舉個例子吧

setwindowshookex (wh_keyboard,(hookproc)key_hook,hinstance,id);

這個key_hook就是hookproc型別的**函式了,實際的過濾是key_hook來完成的

而setwindowshookex只是安裝了hook

10樓:幸巴達

就是在恰當的時候自動執行的函式,不用使用者親自呼叫,只要開始時指定**函式就行了。

11樓:匿名使用者

**函式簡單的說就是一個函式,這個函式在某個執行緒函式或事件響應函式當然也可以是其他函式執行完成後自動呼叫的函式。

比如f1是f2的**,那麼f2執行完成後會自動的呼叫f1。

12樓:隨便問題

典型**函式的應用就是按鈕事件。

按鈕被按下之後,系統通知應用程式說:「按鈕按下啦,快點響應按鈕按下的事件吧。」

如果沒**函式,應用程式只能是不斷地檢查按鈕是否被按下。這樣應用程式執行的效率就很低了(要額外花時間去檢查按鈕是否被按下)

13樓:匿名使用者

講的挺好的

**函式就是那些自己寫的,但是不是自己來調,而是給別人來掉的函式。

訊息響應函式就可以看成是**函式,因為是讓系統在合適的時候去呼叫。這不過訊息響應函式就是為了處理訊息的,所以就拿出來單做一類了。其實本質上就是**函式。

但是**函式不是隻有訊息響應函式一種,比如在核心程式設計中,驅動程式就要提供一些**函式,當一個裝置的資料讀寫完成後,讓系統呼叫這些**函式來執行一些後續工作。

**函式賦予程式設計師這樣一種能力,讓自己編寫的**能夠跳出正常的程式控制流,適應具體的執行環境在正確的時間執行。

14樓:匿名使用者

簡單點,一般就是系統核心會幫你呼叫通知你的過程叫**。

callback函式怎麼用?

15樓:匿名使用者

**函式

比如在嵌入式中,給耳機中斷註冊一個callback函式,這樣,當任何時候有耳機插入時,程式就執行這個callback函式,這時你就可以在callback函式中處理你要乾的事情,比如彈出對話方塊提示插入耳機屬**

增函式減增函式是什麼函式 增函式與減函式的概念是

增函式和減函式的運算關係如下 增函式 增函式 增函式,增函式 減函式 增函式,減函式 減函式 減函式,減函式 增函式 減函式。而增函式 減函式的增減性不一定的。一般地,設函式f x 的定義域為d,如果對於定義域d內的某個區間上的。任意兩個自變數的值x1,x2,當x1 證明 奇函式f x f x g ...

EXCEL函式如果函式,excel函式 如果

你這名次對應分數確定沒有問題,第五名不是c 264分?q12輸入1或者0,r12 sum h12 h12 1向右複製 e2 lookup rank d2,d 2 d 11 countif d 2 d2,d2 1,q 12 y 12,h 2 p 2 向下複製 表二其實是每個分數段的人數 光用公式做不出...

高斯函式和高斯核函式是不是函式,高斯函式和高斯核函式 是不是一個函式?

不是高斯函式的形式為 其中 a b 與 c 為實數常數 且a 0.c 2 2 的高斯函式是傅立葉變換的特徵函式。這就意味著高斯函式的傅立葉變換不僅僅是另一個高斯函式,而且是進行傅立葉變換的函式的標量倍。高斯函式屬於初等函式,但它沒有初等不定積分。但是仍然可以在整個實數軸上計算它的廣義積分 參見高斯積...