C++之内联函数
內聯函數是一種特殊的函數,具有普通函數的特征(參數檢查,返回類型等)
內聯函數是對編譯器的一種請求,因此編譯器可能拒絕這種請求
內聯函數由 編譯器處理,直接將編譯后的函數體插入調用的地方
宏代碼片段 由預處理器處理, 進行簡單的文本替換,沒有任何編譯過程
注:內聯函數聲明時inline關鍵字必須和函數定義結合在一起,否則編譯器會直接忽略內聯請求。
C++中內聯編譯的限制:
不能存在任何形式的循環語句
不能存在過多的條件判斷語句
函數體不能過于龐大
不能對函數進行取址操作
函數內聯聲明必須在調用語句之前
編譯器對于內聯函數的限制并不是絕對的,內聯函數相對于普通函數的優勢只是省去了函數調用時壓棧,跳轉和返回的開銷。
因此,當函數體的執行開銷遠大于壓棧,跳轉和返回所用的開銷時,那么內聯將無意義
總結
- 上一篇: C 温故知新 之 指针:数组指针、字符串
- 下一篇: c语言课程设计 性别,【图片】发几个C语