小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

感觸c語言中的面向?qū)ο笏枷?2

 accesine 2005-07-31
感觸C語言中的面向?qū)ο笏枷?(2)
作者:liyuming1978 發(fā)文時間:2005.05.11
3.CALLBACK函數(shù)

我覺得這是C語言的一個創(chuàng)舉,雖然它很簡單,就象如何把雞蛋豎起來一樣,但是你如果沒想到的話,仍然是一個難題。如果說靜態(tài)入口函數(shù)實現(xiàn)了一個可管理的宏觀的話,CallBack就是實現(xiàn)了一個可進化的微觀:它使得一個函數(shù)可以在不重新編譯的情況下實現(xiàn)功能的添加!但是在最最早期的時候,也有蠻多人持反對態(tài)度,因為它用了函數(shù)指針。

函數(shù)指針雖然靈活,但是由于它要訪問內(nèi)存兩次才可以調(diào)用到函數(shù),第一次訪問函數(shù)指針,第二次才是真正的函數(shù)調(diào)用。它的效率是不如普通函數(shù)的。但是在一個不太苛刻的環(huán)境下,函數(shù)調(diào)用本身就不怎么耗時,函數(shù)指針的性能又不是特別糟糕,使用函數(shù)指針其實是一個最好的選擇。

但是函數(shù)指針除了性能,最麻煩的地方就是會導(dǎo)致程序的“支離破碎”。試想:在程序中,你讀到一個函數(shù)指針的時候,如果你愣是不知道這個函數(shù)指針指向的是哪個函數(shù),那個感覺真的很糟糕。(可以看后面的文章,要使用先進的程序框架,避免這樣的情況)

三、Event和Message

看了上面的描述,相信大家多少有些明白為什么要使用Event和Message了。具體的函數(shù)調(diào)用會帶來很多的問題(雖然從效率上講,這樣做是很好的)。為了提高程序的靈活性,Event和Message的辦法產(chǎn)生了。用名字解析的辦法代替通常的函數(shù)調(diào)用,這樣,如果雙方對這樣的解析是一致的話,就可以達到一個統(tǒng)一。不過Event和Message的作用還不僅僅是如此。

Event和Message還有建立進程間通信的功能。進程將自己的消息發(fā)給“控制中心”(簡單的就是一個消息隊列,和一個while循環(huán)不斷的取消息隊列的內(nèi)容并執(zhí)行),控制程序得到消息,分發(fā)給相應(yīng)的進程,這樣其他進程就可以得到這個消息并進行響應(yīng)。

Event和Message是很靈活的,因為你可以隨時添加或者關(guān)閉一個進程,(僅僅需要添加分發(fā)消息的列表就可以了)Event和Message從程序?qū)崿F(xiàn)上將我覺得是一樣的,只不過概念不同。Event多用于指一個動作,比如硬件發(fā)生了什么事情,需要調(diào)用一個什么函數(shù)等等。Message多用于指一個指示,比如什么程序發(fā)生了什么操作命令等等。

四、小結(jié)

其實編程序和寫文章一樣,都是先有一個提綱,然后慢慢的豐富。先抽象化得到程序的骨架,然后再考慮各個方面的其他內(nèi)容:比如說程序極端的時候會發(fā)生什么問題?程序的這個地方的功能現(xiàn)在還不完善,以后再完善會有什么問題?程序是不是可以擴展的?

(T117)

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多