偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C++語言真的還有市場價值?

開發(fā) 后端
對于程序員來說C++語言只不過是他們使用的工具而已,在他們心里沒有真正的語言,但是C+語言特有的dynamic_cast和reinterpret_cast。

C++語言讓編程人員和搞開發(fā)的人員大大頭疼的問題,即使不用STL,不用類,不用虛擬繼承,甚至不用C++的一切特性,其實學C++很簡單,希望本文能給大家?guī)韼椭?。?!?/P>

開篇之前,先略微聲明一下。本文目的不在于為C++辯護或抬舉,當然也不會有為此而抬高或打壓別的編程語言的意圖。所有的,僅僅是有感而發(fā),并且還是從我個人的角度,有所缺失在所難免。如果你是老鳥,其中之缺還望相見一笑;如果你是菜鳥,對于文中的贊美和批評,請擦亮眼睛,別被我忽悠了。

首先我們先要知道一點,C++是一門什么語言?簡單點來說,C++是一門接近于全能的語言。為什么說是接近呢?因為C++有一門語言是無法取代的,那就是匯編。再直白點來說,匯編對于寄存器的操作,C++是無法勝任的。不信?你試試用C++來改寫一下PC寄存器看看?沒轍吧?

"接近"可以理解了,那么"全能"呢?我們知道,C++是兼容C的。不嚴謹?shù)卣f,我們可以簡單認為C只是C++的一個子集,所以C能做的,C++也能做,這個應該沒有人有異議。為了方便,以下所描述的C++語言,在某些方面也代表C,之所以沒采用C/C++這樣的寫法,僅僅是為了保護鍵盤而已。轉(zhuǎn)回正題,那C#呢?JAVA呢?它們所能做的,比如網(wǎng)絡方面的應用,B/S的方方面面,怎么就沒見C++的身影呢?

關于這個問題嘛,我們從另一個角度來看,C#和JAVA的運行基礎是什么?沒錯,是虛擬機。虛擬機是用什么寫的?嘿嘿,C++。所以,你完全可以用C++先寫一個虛擬機,然后再在虛擬機上解釋C++語法。是不是很酷?當然,我想現(xiàn)實中是不會有人那么去做的。就像從深圳到上海,你可以坐飛機去,也可以騎自行車去。兩者都能到達目的地,但我估計沒幾個人會選擇后者。這就是效率問題。

坐飛機,眼一睜一閉,就到了;騎自行車?呃,這時間就不好估計了。所以這領域,該讓C#的,或是JAVA的,就讓它們?nèi)フ垓v吧。至于C++,就讓它干在一旁瞪眼好了,除非你一定想要耍???。

接著,我們就來看看桌面應用吧。所謂的桌面應用,我們狹義一點,就是桌面應用程序??偟膩碚f,目前在這領域,C++確實還能占有一席之地。但這僅有的一席之地,也岌岌可危。在XP之前,因為系統(tǒng)都是沒有預裝.net framework,所以C++的對手無非就是VB和DELPHI,但這兩者根本無法撼動C++這顆大樹。雖然XP也能裝.net framework,但為了一個應用而弄一個體積如此巨大的玩意,卻有那么一點點的不現(xiàn)實。

但后XP時代,世界就不一樣了。Vista已經(jīng)預裝了.net framework,更不用說Windows 7。甚至還有傳言,Windows 7的用戶界面就是用C#搞定的。何況,C#還有殺手锏,能和Silverlight完美結(jié)合,大大減輕UI的開發(fā)難度。看起來,在今后的日子,在這個桌面應用領域,C++日子過得并不舒坦。在這領域,可能C++還能耀武揚威的,也許就剩下大型的3D游戲了。雖然用.net配合OpenGL或Direct3D也能做C++的事,但效率卻會大打折扣。

雖然隨著硬件的不斷提升,可能這折扣會不斷縮小,但畢竟還是存在的。只要折扣存在,那些游戲廠商就不會放棄C++,因為能優(yōu)化,為何不優(yōu)化?但,也許也僅僅限于此了。C++,它淚流滿面。

最后呢,就是嵌入式領域。在這里,是C++的天下,C++是永遠的王者。它不是一個人在戰(zhàn)斗!此刻,它靈魂附體!你見過那些RTOS是用C++以外的語言寫的(再次重申,正如前文所說,這里的C++也代表了C)?至少我印象中沒有。嵌入式linux支持.net?除非微軟的腦袋秀逗了。

也許有人說,WinCE不是可以支持.net么?支持是可以支持,但并不代表所有的WinCE設備都支持。因為WinCE是可裁剪的操作系統(tǒng),也許是為了節(jié)約內(nèi)存空間,也許是為了啟動速度,或是由于別的雜七雜八的,甚至莫名其妙的理由,很多廠商根本就不會將.net這個會將系統(tǒng)膨脹至少4M的組件加到產(chǎn)品去??纯碬inCE的內(nèi)核代碼,看看WinCE的BSP包,哪里有.net代碼的身影?全部清一色的C++

甚至于WinCE的應用程序,微軟的態(tài)度也非常明確,在桌面只能.net使用的Silverlight,在WinCE SP3添加之后,卻是更改為了C++接口。王者,絕對的王者,根本就不可能有別的語言在這里將C++語言撼動!此時,C++站起來了!腰板直了!#t#

說了那么多,那么我們的最后,就來看看為什么大家都說學好C++難吧。如果你對學好C++沒啥興趣,以下的文字估計對你也沒啥營養(yǎng),你可以完全忽略不計,可以很愉快或很氣憤地將當前網(wǎng)頁給咔嚓掉。

其實學C++很簡單,但難就難在這個"好"字。初學者會發(fā)現(xiàn),入門很簡單,因為C++也沒啥語法;但搞清楚語法后,接下來就犯糊涂了,下一步應該怎么走呢?只所以產(chǎn)生這種原因,是因為C++太靈活了。對于一種功能,C++有各種各樣的方法,究竟什么方法才是最合適的?比如說,傳遞給函數(shù)的形參,什么時候該使用指針,什么時候該使用引用?就連平常得再也不能平常的指針轉(zhuǎn)型,有C的括號形式。

還有C++語言特有的dynamic_cast和reinterpret_cast,究竟哪個才是該使用的?更不用說分配內(nèi)存了,既有malloc,還有new,如果算上STL的話,還有一個resize。我想所有的這些,對于初學者而言,如果他看著這些能夠腿不痛腰不酸,那么我強烈佩服這人的淡定力。

C++語言還有更讓初學者郁悶的是,即使不用STL,不用類,不用虛擬繼承,甚至不用C++的一切特性,也是能夠完成所相應的功能。所以,疑惑了,C++是什么?也許這時候,很多人就會想,如果選擇是唯一的,那是多么地幸福??!因此,很多人就轉(zhuǎn)向了C#(或別的語言),因為對于某些操作,方法是唯一的;即使不是唯一,也沒有C++那么繁多。

責任編輯:chenqingxiang 來源: NET130
相關推薦

2010-01-14 10:34:02

C++語言

2010-01-26 09:24:53

C++語言

2023-04-10 12:40:02

2010-01-15 16:45:35

C++語言

2020-08-14 11:42:41

物聯(lián)網(wǎng)數(shù)據(jù)技術

2024-01-15 11:03:41

2022-07-01 18:43:11

物聯(lián)網(wǎng)集成物聯(lián)網(wǎng)

2021-04-12 17:33:42

Gartner云計算數(shù)字業(yè)務

2010-01-20 17:23:03

C++編程語言

2022-12-29 15:35:46

公共云

2010-01-14 17:52:02

2022-06-30 15:30:39

云的聯(lián)絡中心市場云計算

2022-09-13 10:15:47

人工智能AI

2022-05-08 07:01:34

云計算云市場

2021-04-08 11:10:51

無人機人工智能AI

2010-01-14 13:24:49

CC++語言

2023-07-14 15:48:34

2022-08-22 15:32:59

C++C代碼

2020-10-09 14:01:51

5G5G芯片5G服務

2021-11-02 05:31:11

人工智能AI深度學習
點贊
收藏

51CTO技術棧公眾號