亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

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

?? 介紹一些有關(guān)c/c++的文章 例如:VC++6.0 下搭建 wxWidgets 開發(fā)環(huán)境 最強大的.NET語言之對象構(gòu)造 最強大的.NET語言之內(nèi)存與資源 最強大的.NET語言之裝箱 C++
?? TXT
字號:
感觸C語言中的面向?qū)ο笏枷?
 
 
文章錄入:7747.Net    責任編輯:7747.Net  更新時間:2006-9-21 10:38:08 1278 
 【字體:小 大】
 
 
經(jīng)常聽見別人說面向?qū)ο蟮某绦蛟O(shè)計,以前也有上過面向?qū)ο蟪绦蛟O(shè)計這門課。可是不幸的是,這些都是以C++,甚至VC++為基礎(chǔ)的。而更加不幸的是,多年以來我一直是一個C的使用者。在學校的時候,我主要做的是硬件上的驅(qū)動層,和底層功能層。

在工作以后,又做的是手機上的軟件開發(fā),所有這些都是和C離不開的。雖然我不得不說,C++是一門很好的語言,但是它的編譯速度,代碼效率,編譯后的代碼大小都限制了它在嵌入式上的應(yīng)用。(盡管現(xiàn)在的嵌入式CPU越來越快,內(nèi)存容量變大,我覺得用C++也應(yīng)該沒有什么問題。這使我覺得似乎是嵌入式編譯器的限制。雖然菲利普和TI好像都有C++的編譯器,但是似乎沒人用這個。難道是太貴了?但不管怎么說,嵌入式應(yīng)用中,C語言的普遍使用是肯定的)

那么在面向過程的時代產(chǎn)生的C語言能否使用面向?qū)ο蟮乃枷肽兀课艺J為是肯定可以的,C++不過是在語言級別上加入了對對象的支持,同時提供了豐富的對象庫。而在C語言下,我們只好自力更生了。

一、 面向?qū)ο笏枷氲哪康氖强蚣芑侄问浅橄?
相信很多人都明白面向?qū)ο笾v了什么:類,抽象類,繼承,多態(tài)。但是是什么原因促使這些概念的產(chǎn)生呢?

打個比方說:你去買顯示器,然而顯示器的品牌樣式是多種多樣的,你在買的過程中發(fā)生的事情也是不可預測的。對于這樣的事情,我們在程序語言中如何去描述呢。面向?qū)ο蟮乃枷刖褪菫榱私鉀Q這樣的問題。編寫一個程序(甚至說是一個工程),從無到用是困難的,從有到豐富是更加困難的。面向?qū)ο髮⒊绦虻母鱾€行為化為對象,而又用抽象的辦法將這些對象歸類(抽象),從而將錯綜復雜的事情簡化為幾個主要的有機組合(框架化)。

其實我們的身邊很多東西都是這樣組成的:比如說電腦:電腦是由主板,CPU加上各種卡組成的。這就是一個框架化。而忽略不同的CPU,不同的主板,不同的聲卡,網(wǎng)卡,顯卡的區(qū)別,這就是抽象。再比如說現(xiàn)在的教育網(wǎng):是由主核心節(jié)點:清華,北大,北郵等幾個,然后是各個子節(jié)點,依次組成了整個教育網(wǎng)網(wǎng)絡(luò)。

所以我覺得面向?qū)ο蟮木幊趟枷刖褪牵阂粋€大型工程是分層次結(jié)構(gòu)的,每層又由抽象的結(jié)構(gòu)連接為整體(框架化),各個抽象結(jié)構(gòu)之間是彼此獨立的,可以獨立進化(繼承,多態(tài))。層次之間,結(jié)構(gòu)之間各有統(tǒng)一的通訊方式(通常是消息,事件機制)。

二、以前C語言編程中常用的“面向?qū)ο蟆狈椒?
其實C語言誕生以來,人們就想了很多辦法來體現(xiàn)“面向?qū)ο蟆钡乃枷搿O旅婢蛠碚f說我所知道的方法。

1.宏定義:

有的人不禁要問,宏定義怎么扯到這里來了,我們可以先看一個簡單的例子:


#define MacroFunction Afunction
 

然后在程序里面你調(diào)用了大量的AFunction,但是有一天,你突然發(fā)現(xiàn)你要用BFunction了,(不過AFunction又不能不要,很有可能你以后還要調(diào)用),這個時候,你就可以#define MacroFunction Bfunction來達到這樣的目的。 

2.靜態(tài)的入口函數(shù),保證函數(shù)名相同,利用標志位調(diào)用子函數(shù): 

這樣的典型應(yīng)用很多,比如說網(wǎng)卡驅(qū)動里面有一個入口函數(shù)Nilan(int FunctionCode,Para*)。具體的參數(shù)是什么記不清楚了。不過NiLan的主體是這樣的: 


Long Nilan(int FunctionCode,Para*)

{

Switch(FunctionCode)

{

Case SendPacket:

send(….)

Case ReceivePacket:

receive(…)

 …..

  }
 

寫到這里大家明白什么意思了吧。保證相同的函數(shù)名就是說:網(wǎng)卡驅(qū)動是和pNA+協(xié)議棧互連的,那么如何保證pNA+協(xié)議棧和不同的驅(qū)動都兼容呢,一個簡單的辦法就是僅僅使用一個入口函數(shù)。通過改變?nèi)绻瘮?shù)的參數(shù)值,來調(diào)用內(nèi)部的各個函數(shù)。 

這樣的做法是可以進化的:如果以后想調(diào)用新的函數(shù),增加相應(yīng)的函數(shù)參數(shù)值就好了。如果我們將網(wǎng)卡驅(qū)動和pNA+協(xié)議棧看作兩個層的話,我們可以發(fā)現(xiàn):層與層之間的互連接口是很小的(這里是一個入口函數(shù)),一般是采用名字解析的辦法而不是具體的函數(shù)調(diào)用(利用FunctionCode調(diào)用函數(shù),Nilan僅僅實現(xiàn)名字解析的功能)――!接口限制和名字解析 

接口限制:層與層之間僅僅知道有限的函數(shù) 

名字解析:層與層之間建立共同的名字與函數(shù)的對應(yīng)關(guān)系,之間利用名字調(diào)用功能。 

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ù)指針除了性能,最麻煩的地方就是會導致程序的“支離破碎”。試想:在程序中,你讀到一個函數(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)在還不完善,以后再完善會有什么問題?程序是不是可以擴展的?
 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99v久久综合狠狠综合久久| 成人av在线影院| 中文字幕视频一区| 国产日韩欧美综合在线| 欧美大胆一级视频| 精品国产精品网麻豆系列| 欧美一级理论片| 欧美日韩精品福利| 91精品国产综合久久久久久| 韩国在线一区二区| 欧美大片一区二区| 国产成人精品免费一区二区| 国产成人av在线影院| 欧美日韩一区在线| 欧美日韩免费视频| 91麻豆精品国产无毒不卡在线观看| 欧美日韩成人一区二区| 日韩精品一区二区三区视频播放 | 国产伦理精品不卡| 国产电影一区在线| 99re成人在线| 69堂成人精品免费视频| 欧美xxxxx牲另类人与| 国产午夜精品久久久久久久| 国产精品乱码一区二区三区软件 | 国产成人免费视频网站高清观看视频| 久久国产免费看| 成人精品小蝌蚪| 欧美亚洲国产怡红院影院| 日韩免费看的电影| 亚洲色图在线播放| 首页综合国产亚洲丝袜| 国产精品资源在线看| 99久久综合色| 欧美一级日韩一级| 日韩一区中文字幕| 久久99国产精品麻豆| 91蝌蚪porny成人天涯| 欧美高清视频不卡网| 中文字幕va一区二区三区| 亚洲成人av资源| av在线播放不卡| 欧美一级高清大全免费观看| 成人免费一区二区三区视频| 秋霞影院一区二区| 日本乱码高清不卡字幕| 久久久91精品国产一区二区精品 | 精品免费视频.| 亚洲国产精品久久人人爱| 国产成人av一区二区三区在线| 色悠悠亚洲一区二区| 日本一区二区三级电影在线观看| 天天影视色香欲综合网老头| 91在线小视频| 国产精品视频线看| 久久99国产精品免费| 欧美人伦禁忌dvd放荡欲情| 亚洲少妇中出一区| 国产69精品久久777的优势| 欧美xxxx老人做受| 日av在线不卡| 欧美乱妇20p| 亚洲国产视频直播| 色综合久久中文字幕| 中文字幕一区日韩精品欧美| 国产乱码精品一区二区三区五月婷| 欧美另类变人与禽xxxxx| 亚洲另类春色校园小说| 97久久精品人人做人人爽| 中文字幕精品三区| 波多野结衣欧美| 中文字幕在线播放不卡一区| 成人avav影音| 成人欧美一区二区三区白人| 成人ar影院免费观看视频| 国产精品女人毛片| 99综合影院在线| 国产精品久久二区二区| 99精品国产视频| 亚洲欧美色图小说| 色菇凉天天综合网| 无吗不卡中文字幕| 91精品欧美福利在线观看| 美日韩一区二区| xnxx国产精品| 成人亚洲精品久久久久软件| **性色生活片久久毛片| 91麻豆精品一区二区三区| 亚洲综合视频在线| 91精品国产色综合久久不卡电影| 五月婷婷综合在线| 精品久久久网站| 国产成人av一区| 一区二区成人在线视频| 91精品国产91久久久久久一区二区 | 免费欧美在线视频| 久久久久成人黄色影片| 国产精品一区二区在线播放| 中文字幕在线不卡国产视频| 欧美日韩一区二区三区不卡| 免费人成在线不卡| 国产欧美精品区一区二区三区 | 欧美精品在线观看播放| 久久99国产精品免费| 一区二区中文视频| 91精品欧美久久久久久动漫 | 一区二区三区四区视频精品免费| 欧美三级日韩在线| 国产中文字幕精品| 亚洲在线中文字幕| 国产日本一区二区| 欧美日韩一区小说| 成人美女视频在线观看18| 亚洲成人综合视频| 国产欧美一区二区三区在线看蜜臀| 91精品福利视频| 国产一区二区h| 五月激情综合婷婷| 亚洲欧美日韩在线| 久久久久久久久伊人| 欧美日韩国产系列| 色综合天天综合网天天狠天天| 六月婷婷色综合| 亚洲一级二级在线| 中文字幕 久热精品 视频在线 | 国产一区激情在线| 亚洲成年人网站在线观看| 国产精品女主播在线观看| 日韩一级黄色片| 欧美性猛交xxxxxx富婆| 91在线观看成人| 国产精品一区二区免费不卡| 天堂成人免费av电影一区| 亚洲欧美一区二区不卡| 中文字幕免费观看一区| 久久这里都是精品| 日韩欧美卡一卡二| 4438x成人网最大色成网站| 欧美特级限制片免费在线观看| 成人涩涩免费视频| 国产成人在线免费观看| 激情亚洲综合在线| 久久国产人妖系列| 精品影院一区二区久久久| 视频一区视频二区中文字幕| 一二三区精品福利视频| 一区二区在线看| 亚洲在线中文字幕| 亚洲一级片在线观看| 亚洲高清视频的网址| 亚洲一区二区三区中文字幕| 亚洲精品免费看| 亚洲综合丝袜美腿| 亚洲成年人网站在线观看| 亚洲大型综合色站| 青青青伊人色综合久久| 蜜臀91精品一区二区三区| 日韩中文字幕区一区有砖一区| 香港成人在线视频| 久久国产人妖系列| 成人一区二区在线观看| av电影一区二区| 在线视频中文字幕一区二区| 欧美揉bbbbb揉bbbbb| 欧美剧在线免费观看网站| 日韩精品中文字幕在线一区| 国产亚洲综合av| 中文字幕日韩精品一区| 伊人色综合久久天天人手人婷| 丝袜美腿成人在线| 国内精品国产三级国产a久久| 国产夫妻精品视频| 91麻豆国产在线观看| 欧美一区二区美女| 久久亚洲精精品中文字幕早川悠里| 久久精品一区二区三区四区| 18涩涩午夜精品.www| 午夜精品久久久久久久久久| 精品一区二区三区在线播放| 国产成人免费视| 欧美视频一区二区在线观看| 日韩一区二区三区高清免费看看| 日韩免费看的电影| 亚洲丝袜美腿综合| 日本不卡中文字幕| 成人app网站| 日韩写真欧美这视频| 国产精品久久久久久久蜜臀 | 国产一区二区三区精品欧美日韩一区二区三区| 捆绑紧缚一区二区三区视频| 成人国产精品免费观看动漫| 欧美日韩一区二区在线观看| 国产欧美视频在线观看| 午夜影视日本亚洲欧洲精品| 国产大陆a不卡| 欧美一区二区视频免费观看| 亚洲国产精品成人综合色在线婷婷| 性做久久久久久免费观看| 国产成人免费高清| 精品国产成人系列|