国产探花免费观看_亚洲丰满少妇自慰呻吟_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++進階技術文檔專題,或

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延庆县| 阳谷县| 英德市| 东兴市| 习水县| 襄樊市| 和硕县| 新丰县| 白水县| 信丰县| 渝中区| 花莲市| 凤翔县| 怀远县| 尚志市| 留坝县| 双牌县| 仁怀市| 布尔津县| 珠海市| 旅游| 十堰市| 大宁县| 禹城市| 巴青县| 莎车县| 兴和县| 灯塔市| 黑龙江省| 永年县| 潞城市| 东乌| 宿州市| 玛沁县| 苍山县| 内江市| 和政县| 达尔| 汕头市| 建阳市| 上犹县|