精選分類 書庫 完本 排行 原創專區
欣可小說 > 曆史 > 程式設計語言處理係統 > c

程式設計語言處理係統 c

作者:池昌海 分類:曆史 更新時間:2026-04-29 09:20:01

{

\"code\": 200,

\"title\": \"\",

\"content\": \"C 這個詞在中國大陸的程式員圈子中通常被讀做“C加加”,而西方的程式員通常讀做“Cplusplus”,“CPP”。它是一種使用非常廣泛的計算機編程語言。C 是一種靜態數據類型檢查的、支援多重編程範式的通用程式設計語言。它支援過程化程式設計、數據抽象、麵向對象程式設計、製作圖標等等泛型程式設計等多種程式設計風格。\\n\\n美國AT&T貝爾實驗室的本賈尼·斯特勞斯特盧普(BjarneStroustrup)博士在20世紀80年代初期發明並實現了C (最初這種語言被稱作“CwithClasses”)。一開始C 是作為C語言的增強版出現的,從給C語言增加類開始,不斷的增加新特性。虛函數(virtualfunction)、運算符重載(operatoroverloading)、多重繼承(multipleinheritance)、模板(template)、異常(exception)、RTTI、命名空間(namespace)逐漸被加入標準。1998年國際標準組織(ISO)頒佈了C 程式設計語言的國際標準ISO\\/IEC1988-1998。C 是具有國際標準的編程語言,通常稱作ANSI\\/ISOC 。\\n\\n1998年是C 標準委員會成立的第一年,以後每5年視實際需要更新一次標準。C 0x最終國際投票已於2011年8月10日結束,所有國家都投出了讚成票,C 0x已經毫無疑義地成為正式國際標準。先前被臨時命名為C 0x的新標準將被稱為C 2011。C 2011將取代現行的C 標準ISO\\/IEC14882,它公開於1998年並於2003年更新,通稱C 98以及C 03。國際標準化組織於2011年9月1日出版釋出ISO\\/IEC14882:2011,名稱是:Informationtechnology--Programminglanguages--C Edition:3。\\n\\n組成部分\\n\\n根據EffectiveC 第三版第一條款的描述,現在C 由以下四個“子語言”組成:\\n\\n1、C子語言。C 支援C語言的幾乎全部功能,主要是c89的部分,在語法上與C語言僅有極微妙的差彆(如括號表達式的左右值性,具體請參考C 標準文獻)。\\n\\n2、麵向對象的C 語言。C 語言原本不具備麵向對象的設計功能,然而隨著麵向對象編程的概唸的提出以及如Java等語言的發展成熟,C 語言也開發出了支援麵向對象功能的版本.\\n\\n3、泛型編程語言。C 強大(但容易失控的)模板功能使它能在編譯期完成許多工作,從而大大提高運行期效率。\\n\\n4、STL(C 標準模板庫,StandardTemplateLibrary)。隨著STL的不斷髮展,它已經逐漸成為C 程式設計中不可或缺的部分,其效率可能比一般的native代碼低些,但是其安全性與規範性使它大受歡迎。\\n\\n此外,包含在TR1等中的C 0x將實現的新功能在開發和測試中。\\n\\n發展階段\\n\\nC 語言發展大概可以分為三個階段:\\n\\n第一階段從80年代到1995年。這一階段C 語言基本上是傳統類型上的麵嚮物件語言,並且憑藉著接近C語言的效率,在工業界使用的開發語言中占據了相當大份額;\\n\\n第二階段從1995年到2000年,這一階段由於標準模板庫(STL)和後來的Boost等程式庫的出現,泛型程式設計在C 中占據了越來越多的比重性。當然,同時由於Java、C#等語言的出現和硬體價格的大規模下降,C 受到了一定的衝擊;\\n\\n第三階段從2000年至今,由於以Loki、MPL等程式庫為代表的產生式編程和模板元編程的出現,C 出現了發展曆史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C 已經成為當今主流程式設計語言中最複雜的一員。\\n\\n設計原則\\n\\n·C 設計成靜態類型、和C同樣高效且可移植的多用途程式設計語言。\\n\\n·C 設計成直接的和廣泛的支援多種程式設計風格(程式化程式設計、資料抽象化、麵向對象程式設計、泛型程式設計)。\\n\\n·C 設計成給程式設計者更多的選擇,即使可能導致程式設計者選擇錯誤。\\n\\n·C 設計成儘可能與C相容,籍此提供一個從C到C 的平滑過渡。\\n\\n·C 避免平台限定或冇有普遍用途的特性。\\n\\n·C 不使用會帶來額外開銷的特性。\\n\\n·C 設計成無需複雜的程式設計環境。\\n\\n出於保證語言的簡潔和運行高效等方麵的考慮,C 的很多特性都是以庫(如STL)或其他的形式提供的,而冇有直接新增到語言本身裡。關於此類話題,BjarneStroustrup的《C 語言的設計和演化》(1994)裡做了詳儘的陳述。\\n\\n一般認為,使用Java或C#的開發成本比C 低。但是,如果你能夠充分分析C 和這些語言的差彆,會發現這句話的成立是有條件的。這個條件就是:軟件規模和複雜度都比較小。如果不超過3萬行有效代碼(不包括生成器產生的代碼),這句話基本上還能成立。否則,隨著代碼量和複雜度的增加,C 的優勢將會越來越明顯。造成這種差彆的就是C 的軟件工程性。\\n\\n應用實例\\n\\n主流的3種操作係統Windows內核都是用C語言和彙編寫的,上層高級特性是用C 寫的。\\n\\n《魔獸世界》等幾乎所有的網絡遊戲,pple:OSXiswritteninamixoflanguage,butafewimportantpartsareC (當然最核心的部分都是彙編與c語言).\\n\\nAT&T:ThelargestUStelecommunicationsprovider.\\n\\noprovisioningsystems\\n\\nosystemsforrapidnetworkrecoveryafterfailure\\n\\nAutodesk:AlargenumberofmajornumberofapplicationintheCADdomain\\n\\nEricsson:\\n\\noserverplatform.\\n\\noTDMA-CDMAHLR\\n\\noG**-TDMA-CDMAmobilitygateway\\n\\nGoogle:websearchengine,etc。\\n\\nHP:HereisatinyfractionofHP'sC apps:\\n\\noC,C ,Fortran90compilers,andlinkerforthenewHPIA64platform(theseaddtomorethan1millionlinesofC code).\\n\\nIBM:\\n\\noOS\\/400.\\n\\noK42:ahighperformance,opensource,general-purposeoperatingsystemkernelforcache-coherentmultiprocessors.\\n\\nIntel:\\n\\noVtuneperformaceanalysissoftware\\n\\nocompilersandoptimizers\\n\\nolotsofchipdesignandmanufacturingsoftware\\n\\nJPL(JetPropulsionLab,NASA):Marsroverautonomousdrivingsystem(incl.sceneanalysisandrouteplanning).C onMars!Alsolotsofsupportingsoftware\\\"ontheground\\\"(i.e.Earth).\\n\\nMicrosoft:\\n\\noWindows7(主要是C 還有彙編\\/VB\\/JS\\/Perl\\/C#)\\n\\noWindowsXP\\n\\noWindowsNT(NT4and2000)\\n\\noWindows9x(95,98,Me)\\n\\noMicrosoftOffice(Word,Excel,Access,PowerPoint,Outlook)\\n\\noInternetExplorer(includingOutlookExpress)\\n\\noVisualStudio\\n\\noSQL\\n\\nMozilla:FirefoxbrowserandThunderbirdmailclient(opensource)\\n\\nMySQL:MySQLServer(about250,000linesofC )andMySQLCluster.Arguablytheworld'smostpopularopensourcedatabase\\n\\nNokia:\\n\\noMobileCommunicationsradio-station\\/internetbridges:FlexiGGSN(GatewayGPRSSupportNode)andFlexiSGSN(ServerGPRSSupportNode).\\n\\noMSC\\/HLR\\n\\nSun:oTheHotSpotJavaVirtualMachineiswritteninC \\n\\nSymbianOS:rationale:\\\"[...]usingC forallsystemcode,fromthekernelupwards.\\\"ThisisoneofthemostwidespreadOS'sforcellularphones\\n\\nKDEfromlinuxiswritteninC .\\n\\ntelephonesystems:Ithinkitwouldbealmosteasiertolistthesystemswhicharen'twritteninC \\n\\nC 寫出的軟件,還包括:\\n\\nVLC,著名的開源視頻播放器;\\n\\nLAMMPS,著名分子動力學模擬軟件,其中包括一部分Fortran代碼;\\n\\n編程技巧\\n\\n使用new和delete進行動態內存分配和釋放 運算符new和delete提供了存儲的動態分配和釋放功能。它的作用相當於C語言的函數malloc()和free(),但是效能更為優越。使用new較之使用malloc()有以下的幾個優點:\\n\\n(1)new自動計算要分配類型的大小,不使用sizeof運算符,比較省事,可以避免錯誤。\\n\\n(2)自動地返回正確的指針類型,不用進行強製指針類型轉換。\\n\\n(3)可以用new對分配的對象進行初始化。\\n\\n使用例子:\\n\\n(1)int*p;\\n\\np=newint[10];\\/\\/分配一個含有10個整數的整型數組\\n\\ndelete[]p;\\/\\/釋放這個指向數組的指針所占內存\\n\\n(2)int*p;\\n\\np=newint(100);\\/\\/動態分配一個整數並初始化\\n\\n使用inline內聯函數替代宏調用\\n\\n對於頻繁使用的函數,C語言建議使用宏調用代替函數調用以加快代碼執行,減少調用開銷。但是宏調用有許多的弊端,可能引起不期望的副作用。例如宏:#defineabs(a)(a)

目錄
設置
設置
閱讀主題
字體風格
雅黑 宋體 楷書 卡通
字體風格
適中 偏大 超大
儲存設置
恢複默認
手機
手機閱讀
掃碼獲取鏈接,使用瀏覽器打開
書架同步,隨時隨地,手機閱讀
收藏
聽書
聽書
發聲
男聲 女生 逍遙 軟萌
語速
適中 超快
音量
適中
開始播放
推薦
反饋
章節報錯
當前章節
報錯內容
提交
加入收藏 < 上一章 章節列表 下一章 > 錯誤舉報