inline函數不能在for循環中使用的原因


inline函數的作用繼承了宏定義的優點,沒有了參數壓棧,代碼生成等一部分操作,並且摒棄了沒有檢查編譯規則的缺點;

 

另外要注意,內聯函數一般只會用在函數內容非常簡單的時候,這是因為,內聯函數的代碼會在任何調用它的地方展開,如果函數太復雜,代碼膨脹帶來的惡果很可能會大於效率的提高帶來的益處。內聯函數最重要的使用地方是用於類的存取函數。
 
 
 
原因1:
inline實際上“相當於”宏替換,就是把函數的二進制代碼直接復制到調用的地方,因而inline代碼不應該有跳轉。而循環結構無法避免條件跳轉,所以有循環的代碼無法inline;
 
原因2:
inline是將代碼copy到指定的位置,放在循環當中就會大量的復制代碼;
 
 
這可以默認認為inline函數不能在for循環。
 


免責聲明!

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



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