1,inline修飾的函式叫內聯函式,編譯時c++編譯器會在呼叫內聯函式的地方展開,編譯期間編譯器會用函式體替換函式的呼叫,沒有函式壓棧的開銷,提公升了程式執行效率
2,檢視方式
在release模式下,檢視編譯器生成的彙編**中石否存在 :call 函式名
在debug模式下,看是否有函式壓棧
3,特性:
<1>inline 是以空間換時間的方法,省去額外函式呼叫的開銷,所以**很長或者有迴圈/遞迴的函式不宜使用內聯函式
<2>inline 對於編譯器只是乙個建議,編譯器會自動優化,如果定義的內聯函式裡有迴圈/遞迴**,編譯器在優化時會忽略掉內聯
4,巨集的優缺點
優點:1,增強**的復用性
2,提高效能
缺點:1,不方便除錯巨集
2,導致**可讀性差,可維護性差,容易誤用
3,沒有型別安全的檢查
c++有哪些技術能代替巨集
1,常量定義 換用const
2,函式定義 換用內聯函式
1,auto 作為乙個新的型別指示符來指示編譯器,auto 宣告的變數必須由編譯器在編譯時期推到而得,使用auto定義變數時必須對其進行初始化
2,auto宣告指標時,auto 與 auto* 沒有區別,但是宣告引用,必須加& 即 auto&
在同一行定義多個變數時,變數的型別必須相同
3,
auto 不能做為函式引數,因為編譯器無法對引數實際型別推導
auto不能直接宣告陣列
auto 最長常見的優勢是,新式基於範圍的for迴圈,還有lambda 表示式
auto 不能定義非靜態成員變數
例項化模板時,不能使用auto 作為模板引數
C 內聯函式 auto關鍵字
以inline修飾的函式叫做內聯函式,編譯時c 編譯器會在呼叫內聯函式的地方展開,沒有函式壓棧的開銷,內聯函式提公升程式執行的效率。特性 c 11中,auto作為乙個新的型別指示符來指示編譯器,auto宣告的變數必須由編譯器在編譯時期推導而得 注 例 int testauto int main au...
C 11特性 auto關鍵字
正文 本文的內容已經不新鮮了。關於auto,翻來覆去被人知道的都是這些東西,本文並沒有提出新穎的auto用法。本人原是痛恨部落格一篇篇都是copy而來缺乏新意的探索,當然,本文不是copy而來,但發布這樣一篇大家皆知的文章心裡甚是惶恐。本文對auto的內容加以整理,權當是自己的複習筆記了。回到頂部 ...
C 11特性 auto關鍵字
本文的內容已經不新鮮了。關於auto,翻來覆去被人知道的都是這些東西,本文並沒有提出新穎的auto用法。本人原是痛恨部落格一篇篇都是copy而來缺乏新意的探索,當然,本文不是copy而來,但發布這樣一篇大家皆知的文章心裡甚是惶恐。本文對auto的內容加以整理,權當是自己的複習筆記了。早在c 98標準...