inline函數的作用繼承了巨集定義的優點,沒有了參數壓棧,代碼生成等一部分操作,並且摒棄了沒有檢查編譯規則的缺點; 另外要註意,內聯函數一般只會用在函數內容非常簡單的時候,這是因為,內聯函數的代碼會在任何調用它的地方展開,如果函數太複雜,代碼膨脹帶來的惡果很可能會大於效率的提高帶來的益處。內聯函數最 ...
inline函數的作用繼承了巨集定義的優點,沒有了參數壓棧,代碼生成等一部分操作,並且摒棄了沒有檢查編譯規則的缺點;
另外要註意,內聯函數一般只會用在函數內容非常簡單的時候,這是因為,內聯函數的代碼會在任何調用它的地方展開,如果函數太複雜,代碼膨脹帶來的惡果很可能會大於效率的提高帶來的益處。內聯函數最重要的使用地方是用於類的存取函數。 原因1: inline實際上“相當於”巨集替換,就是把函數的二進位代碼直接複製到調用的地方,因而inline代碼不應該有跳轉。而迴圈結構無法避免條件跳轉,所以有迴圈的代碼無法inline; 原因2: inline是將代碼copy到指定的位置,放在迴圈當中就會大量的複製代碼; 這可以預設認為inline函數不能在for迴圈。 http://bbs.csdn.net/topics/340149836