[C++]在for循環體內定義變量的效率分析


如果在for循環體內定義的是內置類型的變量,如int、float、double等,則與在循環體外定義基本沒差別,因為當前編譯器對此優化已足夠好,在循環體內和體外定義內置類型變量對應的反匯編代碼是一樣的(根據各路網上大神實驗結果);

如果在for循環體內定義的是自定義類型的變量,如自定義class對象,則與在循環體外定義是有差別的,因為需要不斷創建和銷毀臨時變量,調用class的構造函數和析構函數需要一定開銷。與內置類型不同,自定義class的constructor和deconstructor是編譯器無法預期的,所以在編譯器那塊無法優化,所以這部分開銷無法避免。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM