Callback = Call back
= Call me back when you have done the job
= 回電﹝回個電話﹞
= 做好了請叫我一下。
Call back 是英語世界的日常用語。
有一天,內地的A想請港口的B搬貨櫃,A拿起手機呼叫B:
A: 呼叫B!請把港口的貨櫃搬上輪船,搬完後請回電告訴我一共搬了幾櫃。
B: 電話幾號?
A: 0123456789。
於是B開始搬貨櫃,搬完後打了那個電話號碼,告訴A一共搬了幾櫃。
在程式裡面使用C實作這種call back機制時,A必須傳一個function pointer
給B,讓B可以使用這個function pointer來通知A。這個function pointer
內含某個function的位址,而這個function就被稱為callback function,
並不是因為這個function的長相特別,只是因為它的用途是特別設計給B來
回呼而已。
先了解function pointer的使用,就可以了解如何使用callback了。
有些人對於C語言沒給callback function一個特別的長相有點不滿意,所以
特別定製了一個modifier﹝修飾字﹞叫做CALLBACK,冠在函式名稱前面
以顯名號,就是要告訴看程式碼的人:「這是一個callback function! 這樣
講你應該就知道它是做什麼的了吧。請看看文件或找找程式碼,到底是誰會
傳這個callback function給哪些人......這可是精心設計的。機關重重,請
小心謹慎。」
會需要設計出callback機制的場合,通常比較特殊,例如 iterative processing
或非同步的程式。Tree traversal是iterative processing的一個例子,當然
也只有把tree traversal通用化才會使用到callback。非同步就例如non-blocking
socket、non-blocking I/O、或多執行緒程式了。
2008年2月28日 星期四
2008年2月2日 星期六
2008年1月26日 星期六
2008年1月12日 星期六
2008年1月10日 星期四
Surf internet with 3G phone
使用3G手機連上網際網路,若是使用吃到飽型的話,那實在太方便了,走到那裡用到那裡
http://www.mobile01.com/topicdetail.php?f=18&t=94101&p=1
PDA使用3G手機連上網際網路看這邊
http://www.mobile01.com/topicdetail.php?f=221&t=134466&cache=0
http://www.mobile01.com/topicdetail.php?f=18&t=94101&p=1
PDA使用3G手機連上網際網路看這邊
http://www.mobile01.com/topicdetail.php?f=221&t=134466&cache=0
2008年1月9日 星期三
Ramdisk
下載
http://www.chweng.idv.tw/downloads/rramdisk.rar
安裝使用
http://taiwan.cnet.com/blog/0,2000089057,20126599,00.htm
其它設定
eeepc ramdisk firefox
1.開啟FireFOX
2.在網址列輸入"about:config"-->[Enter]
3.在一大串的設定項目空白處按右鍵,選[新增]-->[字串]
4.字串名稱輸入"browser.cache.disk.parent_directory"-->[確定]
5.要求輸入字串的值(RAMDisk的所在磁碟路徑,比如Z:\\)
6.找到"browser.cache.disk.capacity"項目-->點兩下進入-->依實際需求更改快取容量上限(不可超過RAMDisk剩餘空間,單位是KB,100000概約100MB左右)
7.搞定收工
相關討論
http://www.mobile01.com/topicdetail.php?f=233&t=488510
http://www.mobile01.com/topicdetail.php?f=233&t=474498&last=4509610
http://www.chweng.idv.tw/downloads/rramdisk.rar
安裝使用
http://taiwan.cnet.com/blog/0,2000089057,20126599,00.htm
其它設定
eeepc ramdisk firefox
1.開啟FireFOX
2.在網址列輸入"about:config"-->[Enter]
3.在一大串的設定項目空白處按右鍵,選[新增]-->[字串]
4.字串名稱輸入"browser.cache.disk.parent_directory"-->[確定]
5.要求輸入字串的值(RAMDisk的所在磁碟路徑,比如Z:\\)
6.找到"browser.cache.disk.capacity"項目-->點兩下進入-->依實際需求更改快取容量上限(不可超過RAMDisk剩餘空間,單位是KB,100000概約100MB左右)
7.搞定收工
相關討論
http://www.mobile01.com/topicdetail.php?f=233&t=488510
http://www.mobile01.com/topicdetail.php?f=233&t=474498&last=4509610
訂閱:
文章 (Atom)