forceinline关键字
生活随笔
收集整理的這篇文章主要介紹了
forceinline关键字
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
[轉]__forceinline關鍵字
Posted on 2011-08-19 10:07 單魚游弋 閱讀(2229) 評論(0) 編輯 收藏編輯器加載中...
??? C++提供了內聯函數,目的是為了提高函數的執行效率。內聯函數在函數聲明前面加上關鍵字inline 就可以了
??? 如:inline int FunctionOne(int x);
??? 在VC++中可使用另一關鍵字_forceinline 代替inline 關鍵字.這個關鍵字將命令編譯器跳過一般的ROI 分析(Return On Investment --一種編程縮略語),將所對應的代碼強行內聯.在有寫時候,編譯器會拒絕將一個函數內聯,使用這個關鍵字,用戶只得到一個編譯警告,就可強行內聯.
??? 在使用內聯函數時,是由編譯器決定它們是按普通函數處理還是將調用函數部分用實際的函數體代碼替換。不允許將遞歸函數進行內聯(VC++可進行編譯器選項設置,允許內聯擴展到一定深度)
??? 下面情況不宜使用內聯:
??? (1)如果函數體內的代碼比較長,使用內聯將導致內存消耗代價較高。??
??? (2)如果函數體內出現循環,那么執行函數體內代碼的時間要比函數調用的開銷大。
???? 一個好的編譯器將會根據函數的定義體,自動地取消不值得的內聯(這進一步說明了inline不應該出現在函數的聲明中)。
總結
以上是生活随笔為你收集整理的forceinline关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++控制台日志
- 下一篇: 如何定位Release程序崩溃原因