国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C語言中的面向對象(4)-面向對象思想2

2019-11-17 05:05:50
字體:
來源:轉載
供稿:網友
  3.CALLBACK函數。  我覺得這是C語言的一個創舉,雖然它很簡單,就象如何把雞蛋豎起來一樣,但是你假如沒想到的話,嘿嘿。
假如說靜態入口函數實現了一個可治理的宏觀的話,CallBack就是實現了一個可進化的微觀:它使得一個函數可以在不重新編譯的情況下實現功能的添加!但是在最最早期的時候,也有蠻多人持反對態度,因為它用了函數指針。函數指針雖然靈活,但是由于它要訪問內存兩次才可以調用到函數,第一次訪問函數指針,第二次才是真正的函數調用。它的效率是不如普通函數的。但是在一個不太苛刻的環境下,函數調用本身就不怎么耗時,函數指針的性能又不是非凡糟糕,使用函數指針其實是一個最好的選擇。但是函數指針除了性能,最麻煩的地方就是會導致程序的“支離破碎”。試想:在程序中,你讀到一個函數指針的時候,假如你愣是不知道這個函數指針指向的是哪個函數,那個感覺真的很糟糕。(可以看后面的文章,要使用先進的程序框架,避免這樣的情況)  三、Event和Message  看了上面的描述,相信大家多少有些明白為什么要使用Event和Message了。具體的函數調用會帶來很多的問題(雖然從效率上講,這樣做是很好的)。為了提高程序的靈活性,Event和Message的辦法產生了。用名字解析的辦法代替通常的函數調用,這樣,假如雙方對這樣的解析是一致的話,就可以達到一個統一。不過Event和Message的作用還不僅僅是如此。  Event和Message還有建立進程間通信的功能。進程將自己的消息發給“控制中心”(簡單的就是一個消息隊列,和一個while循環不斷的取消息隊列的內容并執行),控制程序得到消息,分發給相應的進程,這樣其他進程就可以得到這個消息并進行響應。  Event和Message是很靈活的,因為你可以隨時添加或者關閉一個進程,(僅僅需要添加分發消息的列表就可以了)Event和Message從程序實現上將我覺得是一樣的,只不過概念不同。Event多用于指一個動作,比如硬件發生了什么事情,需要調用一個什么函數等等。Message多用于指一個指示,比如什么程序發生了什么操作命令等等。  四、小結  其實編程序和寫文章一樣,都是先有一個提綱,然后慢慢的豐富。先抽象化得到程序的骨架,然后再考慮各個方面的其他內容:程序極端的時候會發生什么問題?程序的這個地方的功能現在還不完善,以后再完善會有什么問題?程序是不是可以擴展的?  本系列文章是我這些階段的一些心得,目的是拋磚引玉,希望能和大家交流,得到更多的知識。Liyuming1978@163.com (這個信箱以前發了一個文章 C優化之路,現在都快成垃圾信箱了,呵呵,網絡的力量真是強大呀) 更多文章 更多內容請看C/C++進階技術文檔專題,或

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 惠安县| 古蔺县| 徐水县| 东方市| 运城市| 祁东县| 丰县| 广河县| 依兰县| 南宫市| 尉犁县| 菏泽市| 滦平县| 临城县| 吉安市| 扶风县| 商都县| 博爱县| 唐海县| 迁西县| 哈巴河县| 德保县| 湘西| 林周县| 农安县| 韶山市| 宜都市| 乌什县| 西和县| 黄龙县| 宜宾县| 大田县| 南皮县| 屏南县| 唐河县| 牙克石市| 思茅市| 大同县| 枝江市| 辰溪县| 和平县|