回呼函數的不完全說明

來源:互聯網
上載者:User

回呼函數聽起來是個非常專業的名稱,讓人產生一種敬畏的感覺。這裡試圖做一個說明,如果沒有看懂,原因只是我的表達能力,而非你的理解能力。

1、回呼函數是什嗎?從c的角度來看,回呼函數從基本上,是一個指標,更確切的說,是一個函數指標。

2、回呼函數用來做什嗎?既然它是一個函數指標,那麼顯然,函數指標用來做什麼,回呼函數自然可以有一份。更進一步,指標用來做什麼的,函數指標也有一份。3、為什麼要使用回呼函數?和為什麼要使用指標一樣,使用回呼函數的主要目的是為了達到所謂的“靈活性”。

4、回呼函數的使用場合既然是函數,那麼必然有實現的地方和調用的地方。回呼函數調用的地方應該大多數是提供服務的代碼群。如基礎介面提供者。反之,回調實現的地方大部分是使用服務的代碼群。如應用介面實現者。回呼函數在可視化控制項的開發中有大量的使用,windows本身也大量使用了回呼函數。

5、例子比比皆是。比如通用的按鍵控制,其按鍵實現的代碼中有如何畫按鍵,如何在滑鼠按下時顯示一個向下的動作,如在需要隱藏的時候訊息,這些都是按鍵控制自身實現的代碼,是否隱藏作為一個屬性,由調用者設定,按鍵控制的代碼根據調用者設定的不同屬性,採用不同的行為。

自然,調用者使用按鍵不是為了設定它的屬性來玩的,調用者是為了做事情的,那麼非常顯然的,調用者希望在按鍵按下時完成一些事情,比如開始格式化硬碟,這些代碼當然由調用者來寫,問題在於如何讓調用者知道按鍵被按下了?

方法1:設定屬性,由調用者自己查看。在按鍵屬性中增加一個是否按下的屬性,這個屬性和其他屬性不同,是由按鍵控制本身的代碼來操作的,當使用者按下按鍵,那麼這個屬性改變。調用者定時或者偶然查看這個屬性,再決定自己的行為。如果把調用者看做領導,按鍵控制看做部下,那麼這樣的部下顯然無法讓領導滿意,冒號們已經很忙了,還要不斷抽時間四處查閱屬下?

方法2:發訊息。既然按鍵控制不應該消極怠工,那麼無論有什麼事情就趕緊彙報吧。向調用者發送一個訊息開起來是很勤快的做法。可是冒號還是不滿意,不滿意的地方在於按鍵控制仍然缺乏主動性,只是簡單的把訊息一發送,就不管不顧了,剩下的事情全交給領導,真不知道到底誰是領導了。雖然現在欠債的是大爺,可領導永遠是領導。

方法3:回呼函數。領導需要布置任務,比如稅務局的來了財務的趕緊給假賬本,研發的就一問三不知。對於按鍵來說,這個按鍵按下和那個按鍵按下自
然分工也不同,按鍵提供一個回呼函數來接受指令,按下時是趕緊給假賬本還是一問三不知,全有調用者說了算。按鍵必須保證在按鍵按下時,這些指令,也就是回
調函數得到恰當的運行。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.