C 與 C 誰的效率高,為什麼?

時間 2021-05-05 17:43:42

1樓:jiaqi feng

C++完全可以寫成和C一樣的,所以執行效率上C大於等於C++.

C++提供了很多更高的抽象辦法,所以開發效率總體而言還是高於C的.前提是你能掌控C++的複雜性.

2樓:陳林熙

程式寫多了,很多道理自然就明白了.不是C++效率低,而是封裝帶來的而外開銷造成的.

一般認為C++和C執行效率沒有多大區別,但是C++程式的記憶體占用會比C大.

但是若把C++的Class轉換成C的struct+函式指標的形式,一樣可能會有浪費空間的的問題.因為乙個類的字段有可能用到,可能用不到,除非你針對每個特定的程式寫乙個類,因為程式設計有復用需求,一般人都會寫一些通用的類.然而絕大多數的區域性假設都可以優化,那麼乙個類都不用,全用函式,起碼在空間上就不會浪費了.

3樓:五羊飛

我講一講語言層面的吧。

並不是說C++是C的超集,C就一定能從低層模擬出C++的特性來。

比如說有乙個神奇的特性是C++獨有的——右值引用(移動語義),在C不開外掛程式(asm)的情況下也沒有辦法。

那麼在基於移動語義的情況下C++完虐C,比如說大物件的swap或vector擴張之類的。

具體談右值引用的很多,就不具體說了。

4樓:Godbird

老實說,本質上是沒什麼太大差異的。但是如果善用C++的話,某些情況下可以用空間換時間的方式獲得更好的效率,簡單的例子就是stl容器類裡的size函式,比如如果是string,至少你不用每次都strlen了嘛。

5樓:

要我說,學計算機的同學,語文能力也不能偏廢。題主問「效率」,一群人就自以為是樂顛樂顛地侃「效能」了。「效率」等同於「效能」嗎?

就不用我進一步辨析兩個詞的語義了吧。如果是面試,通通給不及格。

6樓:YatS

C is a subset of Cpp, cpp中加入了更多的功能(首先它是OO,功能上比如class inheritance polymorphism generic p等等),如果你不給自己挖坑在implement同樣的功能效能上應該是相同的。

c的庫比較小基本什麼都得自己寫,在開發上免不了比cpp多碼好多。時間成本顯然高過cpp

7樓:sullix

主要還是看編譯器,樓主可以試試用tcc和cl分別做編譯小程式。。

在電腦上寫東西最好還是用C++,真的需要進行極致的效能優化,考慮__asm

8樓:李遙

難道沒有人發現嗎,在PL流派中,Micro-Manage Everything流派(含C和C++)的特點就是可以無限抬槓下去,因為可以Micro-Manage嘛

9樓:Hilon

語言之間直行效率本質是沒有什麼太大的差異的.

可能因為一些緩衝機制提高一些效率,那只是在更高層次規劃的好而已.

你願意GC,C語言也可以寫GC,你覺得系統自帶的new慢,你可以用TC/KCmalloc,或者自己寫乙個.

差異就在於你肯為執行效率承受多少開發和維護成本.

10樓:魯哈花

有乙個格鬥家他叫C,格鬥時擅長掏襠挖眼,殺人效率很高;

另乙個格鬥家和C師出同門,叫C++,格鬥時除了可以掏襠挖眼之外,還可以附帶一些花哨的招式;

問誰的殺人效率高?

C可以的C++都可以,C++也可以掏襠挖眼。

11樓:權少

語言之間是很難比較效率的,因為實際上效率上只能看它們各自的直譯器或者編譯器,從語言上很難看出來,動態語言指令碼也能夠通過強大的編釋器或者加了即時編譯(JIT)的直譯器來加速到和C同乙個數量級,如Common Lisp。

回到C和C++來講,C++增加了一些如虛函式之類的需要執行時特性,但這是可選的,從語言來說C++的型別系統比C要完善,理論上可以幫助編釋器生成更高效的機器碼。

12樓:

這個話題。。。無語,效率幾乎一樣。因為C++同樣是把效能放在數一數二的地位來考慮的。當然,C++可能會犧牲編譯期的成本。

13樓:Ryan Feng

Einstein's theory of special relativity implies that nothing can be faster than C.

14樓:馮春林

c/c++效率高低決定於開發者開發的專案和使用的演算法,只有看c/c++哪種語言開發具體的專案合適,單純考慮c/c++的執行效率是沒有什麼意義的

15樓:dime

要視C++為乙個多語言聯邦,它包括四個主要的次語言:C,Object-Oriented C++,Template C++,STL。相同的策略,在採用不同次語言的情況下,其高效性也是不一樣的,只能說視情況而定(參考Effictive C++)

16樓:

其實使用C語言和使用C++沒有絕對的效率高低,要看針對的專案來定,比如你開發乙個嵌入式的產品,使用C語言肯定比使用C++高,但是你開發乙個像星際爭霸的大型遊戲,C語言就望塵莫及了!

「指令碼語言實現伺服器比c 開發效率高」具體體現在哪些方面?

黃魏 用1年lua開發時間完成可能需要2年的c 開發,不管開發期間你獲得了什麼經驗,用lua所節約下來的時間,泡泡妹子喝喝咖啡讀讀書,總好過夜夜把自己坑進單步除錯和無盡編譯。如果樓主你說你的c 開發效率快於lua。那把我上面說的開發時間換成學習時間,順便把lua的時間單位改成月。 寫指令碼就是打雜的...

深夜寫作業效率高嗎,為什麼?

查無此人 後來有一天週日放假,我爸媽在蓋房子倒水泥 過年前就開始修房子了,把平房改成三層樓房 我在外面幫忙拉水泥,因為早上六點就起來了,和平時11點起來的作息嚴重不符,導致身體出現了巨大的疲憊,大概上午十點多,幹完活之後,感覺整個人都昇華了,當天晚上我九點就睡了,神奇的是從那以後直到現在,我每天晚上...

為什麼手機低電量充電效率高?

沉沒的貓 實際上通常是80 幾之後會顯著變慢。鋰電池為防止過充,後段都為恆壓充電,即用電池上標註的充電電壓比如4.2V 4.35V來為電池充電。常溫下,當電池電量較低時為恆流充電,隨著電量變高即電池電壓變高,充電電壓與電池電壓的壓差變小,充電電流自然就越來越小,直到小於某個值時充電晶元會切斷充電。有...