C與C++的性能差距來源于哪裏?

世铎進階 2024-02-27 02:44:26
C與C++的性能差距來源于哪裏?

在開始前我有一些資料,是我根據網友給的問題精心整理了一份「C++的資料從專業入門到高級教程」,

點個關注在評論區回複“888”之後私信回複“888”,全部無償共享給大家!!!

C++所謂零開銷的前提來自于,在C++中你完全可以用C的API或者語法直接操作指針等,換句話說就是直接用C的手法寫代碼,如果你完全采用純C++的手法或者類庫寫一定是有開銷的,這種開銷也許是多了一些爲了安全而采取的複制動作,或爲了某些C++提供的元素而多一些的指令,一般從編譯後的結果就能看出,C++的目標文件是遠大于C的目標文件的,也就說明是多了很多指令,這並不是不好,無非是用空間獲取一些更好的安全和功能。這當然是有開銷的,說零開銷的那是一些語言推廣者的廣告詞或者偷換概念自吹自擂而已。不過性能很多時候取決于算法,爲了實現更好的算法,C++提供了更多的工具和元素,從這個角度看也很難說C++程序一定慢于C程序。極致的性能測試更像是競技體育,而不是真實的上“戰場”,因爲實際的項目有很多其他因素 。比如極致的C語言性能測試程序甚至可以不考慮內存泄露、線程安全或者調用者的參數檢查。加上這些可能就會慢很多。而C++的類庫則可能在設計時就考慮了很多。總之,不要相信這些東東。

0 阅读:6

世铎進階

簡介:感謝大家的關注