回答
從SO:Is C notably faster than C++
在C++中, 「您只需支付您所使用的。」所以沒有任何東西會比C慢。特別是對於科學程序,模板表達式可以使用模板引擎執行一些自定義優化以處理程序語義。
爲Python等項目選擇C語言的原因是很多人完全理解它,所以一個大的代碼庫不會混淆許多大量的貢獻者。
在幾乎所有情況下,C是有效的C++(這是由於C C++的近一個子集),所以幾乎總是有辦法做的事情,是至少同樣快於C++爲C.如後所述在上面引用的SO答案中,C在空間效率方面具有優勢。
是的,但這並沒有回答「人們爲什麼說C++比C慢」的問題。人們會這樣說,有時候這是真的......通常是一個不合適的開發團隊,或者出於某種原因,C++的某些較慢特性得到保證的情況... – GreenAsJade
我認爲自從我回答它之後,問題就發生了變化。當我回答時,它是「何時何地C++比C慢?」 – sundance
基於概念的多態性如何? – user3186766
- 1. C++是否執行返回語句?
- 2. 是編譯器錯誤還是c語言功能?
- 3. C/C++編譯器是否會優化if語句?
- 4. ETL是解釋還是編譯語言
- 5. C語言中的複合語句是左值還是右值?
- 6. C#:是否需要編譯指示警告還原?
- 7. 執行收單(C#)語句
- 8. 調試用C++是C可執行 - CLI庫編譯/ CLR
- 9. C++指針比較器不編譯
- 10. 不C#編譯器優化空語句
- 11. Mono C#編譯器在編譯時是否執行任何並行循環?
- 12. 代碼是C還是C++?
- 13. 指令/指令是在運行時還是彙編時執行的?
- 14. 編譯C#腳本很慢
- 15. C#使用語句是否執行try/finally?
- 16. php是編譯語言還是解釋語言?
- 17. netTcp比basicHttp執行慢,是正常?
- 18. C是命令式還是陳述式編程語言
- 19. c語句彙編
- 20. WITH語句每個查詢執行一次還是每行執行一次?
- 21. 是c#編譯器可執行文件嗎?
- 22. C語言定義是指
- 23. C++ AMP是慢
- 24. 編譯錯誤:不是語句
- 25. 什麼是C編程語句的C#等效代碼?
- 26. 如何用OleDb,C#執行SHOW語句?
- 27. c#執行大型SQL語句
- 28. 如何在C++中執行語句?
- 29. 如何在C++中執行SQLite語句
- 30. 定時語句的執行 - C++
「我認爲在很多情況下C++比C更合理優化。」 - 這也是Bjarne所說的。但是,在某些情況下(例如,多態性,即虛函數被調用),當一個C++程序運行速度比它的C等價。另外,編譯C++是一項比較複雜的任務,因此它比C編譯更具計算密集性(在C++中,我們有* huuuuge *頭文件,模板,類型推斷等等)。 – 2014-01-12 07:10:42
編寫比C慢得多的C++是可能的(特別是通過使用大量不明智的虛擬函數等)。寫得好的C++通常和C一樣快,有時候速度要快得多。不幸的是,這個問題很可能會導致很多意見和辯論,但很難以真正的答案,所以很可能會因爲不符合SO的格式而被封閉。 –
同意H2CO3。我最近編寫了一個C++類,它執行了一項不重要的任務。我在該堆棧上創建了一個實例,並用常量值調用它。海灣合作委員會基本上預先解決了結果,並優化了幾乎所有的東西。但是,當談到比較語言的速度時,它歸結爲這些語言的語義和「實踐」。如果你用C語言在C++中創建了'新'堆對象,那麼你可能會選擇不這樣做,當然它可能會變慢。在C++中V表可能會比較慢,但是如果你用C語言和模擬V表編寫了等效代碼,那麼C就不會更快。 – slipperyseal