<kbd id="daqct"></kbd>

  • <nav id="daqct"></nav>
    <wbr id="daqct"><pre id="daqct"></pre></wbr>
    <wbr id="daqct"></wbr>
    <form id="daqct"><th id="daqct"></th></form>
    更多課程 選擇中心

    C/C++培訓
    達內IT學院

    400-111-8989

    現在市場上,C++ 主要用來做什么?

    • 發布:C++培訓
    • 來源:C++資訊
    • 時間:2020-07-24 11:13

    在大多數開發或者準開發人員的認識中,C/C++ 是一門非常難的編程語言,很多人知道它的強大,但因為認為“難”造成的恐懼讓很多人放棄。

    我從學生時代開始接觸 C/C++,工作以后先后擔任過 C++ 客戶端和服務器的開發經理并帶隊開發,至今已經有十多年了。雖然時至今日哪種編程語言對我來說已經不再重要,不過有了C這個基礎,您可以快速學習任何語言和編程技術。

    目前 C/C++ 的應用領域

    需要注意的是本文不細分 C 與 C++ 的區別,通常情況下,C++ 可以看成是 C 的一個超集,在古典時期,可以認為 C++ 就是 C with classes。雖然如今的 C++從功能層面上來看,離 C 越來越遠了;但是從語法層面來上來看,大多數 C++ 語法還是與 C 基本一致的,所謂 C++ 的面向對象特性,如果細究 C++ 類方法的具體語法還是 C 的過程式語法。當然,面向對象是一種思想,語言本身對其支持的程度固然重要,能否熟練地使用則是更要看開發者的水平了。

    C 語言目前主要用于像操作系統這樣一類偏底層的的應用開發,包括像 Windows/linux等這樣的大型商業操作系統,和嵌入式操作系統、嵌入式設備上的應用。還有一些開源的軟件,也會選擇C開發,這些系統主要優先考慮程序執行效率和生成的可執行文件的體積(C 代碼生成的可執行文件體積相對更小),當然還有一些是歷史技術選型問題,這類軟件以 redis、libevent、nginx,目前像國內的電信服務商所使用的電話呼叫系統一般也是基于一款叫 freeswitch 的開源 C 程序做的二次開發。

    C++ 面向對象的語法與 C 相比較起來,在將高級語言翻譯成機器二進制碼的時候 C++ 編譯器在背后偷偷地做了大量工作,生成了大量的額外的機器碼,而這種機器碼相對于 C 來說是不是必須的。例如,對于一個 C++ 類的實例方法,編譯器在生成這個方法的機器碼時,會將函數的第一個參數設置成對象的 this 指針地址,以此來實現對象與函數的綁定。正因為如此,許多開發者會優化和調整編譯器生成的匯編代碼。

    C++ 與操作系統平臺

    從上面的介紹可以看出,與 Java、python 等語言相比,C/C++ 語言是運行在離操作系統最近的一種高級語言,因此其執行效率也比較高,但是有得必有失,也因為如此,所以 C/C++ 這門語言存在如下特點:

    C/C++ 整套的語法不具備“功能完備性”,單純地使用這門語言本身提供的功能您無法創建任何有意義的程序,您必須借助操作系統的 API 接口函數來達到相應的功能。當然,隨著 C++ 語言標準和版本的不斷更新升級,這種現狀正在改變;而像 Java、python 這類語言,其自帶的 sdk 提供了各種操作系統的功能。舉個例子,C/C++ 語言本身是不具備網絡通信功能的,必須使用操作系統提供的網絡通信函數(如socket系本身是不具備網絡通信功能的,必須使用操作系統提供的網絡通信函數(如socket系整的網絡通信功能。我在讀書的時候常常聽人說,QQ、360 安全衛士這類軟件是用 C/C++ 開發的,但是當我學完整本 C/C++ 教材以后,仍然寫不出來一個像樣的窗口程序。許多過來人應該都有類似的困惑吧?其原因是一般 C/C++ 的教材不會教你如何使用操作系統 API 函數的內容。

    正因為 C/C++ 語言需要直接使用了操作系統的接口功能,這就造成了 C/C++ 語言繁、難的地方,如操作內存方面不當容易引起程序宕機,不同的操作系統的 API接口使用習慣和風格也不一樣,接口函數種類繁多,開發者如果想開發跨平臺的程序,必須要學習多個平臺的接口函數和對應的系統原理。

    在應用層開發,直接使用操作系統的接口的函數,往往執行效率高,控制力度大,您的開發能力僅僅限制于操作系統本身,Java 這類語言,很多功能即使操作系統提供的,如果 Java 虛擬機不提供,開發人員也無法使用。正如著名的編程大師 Charles Petzold 說的:

    “顯而易見,究竟用哪種方式編寫應用程序最好,其實并無一定之規。應用程序本身的特性應該是決定采用何種編程工具的最主要因素,但是無論將來你采用什么樣的編程工具,通過了解操作系統 API 從而深入理解操作系統的工作原理,這本身就有很重要的意義。

    操作系統是一個非常復雜的系統,在 API 之上加一層編程語言并不能消除其復雜性,最多不過是把復雜性隱藏起來而已。說不定什么時候,這種復雜的那一面遲早會蹦出來拖你的后腿,懂得系統 API 能讓你到時候更快地掙脫困境。在基本操作系統API之上的任何軟件層或多或少都會限制你使用操作系統的全部功能。

    比如,你或許發現采用 Visual Basic 來編寫你的應用程序非常理想,但是就有那么一兩項非常基本的功能 Visual Basic 無法支持。往往這個時候你得非要調用基本 API 。作為直接使用操作系統 API 的程序員,我們的活動空間完全由 API 來規范,再沒有什么其他方式比直接調用 API 更有效、更靈活多樣了。”

    總結起來,C/C++ 語言的開發核心是建立在直接調用操作系統 API 的基礎上的,優點是執行效率高、發揮空間大;缺點是,需要經過系統深入的學習,學習周期長,編寫代碼較復雜、容易出錯。

    當你還在擔心能否就業時,達內學員提前被企業錄取;當你轉輾于各大招聘會時,達內學員收到了高薪offer;當你在各大招聘網站投遞簡歷時,達內學員中有人一畢業進入五百強名企。所以選擇很重要。找C++培訓班,選達內就對了。

    版權聲明:轉載文章來自公開網絡,版權歸作者本人所有,推送文章除非無法確認,我們都會注明作者和來源。如果出處有誤或侵犯到原作者權益,請與我們聯系刪除或授權事宜。

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:啥是封裝?C++封裝小技巧
    下一篇:每個開發者都應該了解這兩個C++特性

    C語言宏定義的幾種使用方法

    C與C++內存管理避坑指南

    C/C++代碼規范注釋有哪些講究?

    C語言中,全局變量濫用的后果竟如此嚴重?

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    欧美三级片,白洁外传,第四色播日韩AV第一页,啪啪免费观看大全av 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>