1. 內聯函式概念
以inline修飾的函式叫做內聯函式,編譯時c++編譯器會在呼叫內聯函式的地方展開,沒有函式壓棧的開銷,內聯函式提公升程式執行的效率。
1.1 不使用內聯函式的反彙編**
1.1 使用內聯函式的反彙編**
2.內聯函式特性
inline是一種以空間換時間的做法,省去呼叫函式的額外開銷,所以**很長或者有迴圈/遞迴的函式不適宜使用作為內聯函式。
inline對於編譯器而言只是乙個建議,編譯器會自動優化,如果定義為inline的函式體內有迴圈/遞迴等等,編譯器優化時會忽略掉內聯。
// f.h
#include
using
namespace std;
inline
voidf(
int i)
;// f.cpp
#include
"f.h"
voidf(
int i)
// main.cpp
#include
"f.h"
intmain()
// 鏈結錯誤:main.obj : error lnk2019: 無法解析的外部符號 "void __cdecl f(int)"
//(?f@@yaxh@z),該符號在函式_main中被引用。
3. 巨集的優缺點3.1 優點
3.2 缺點
4. c++有哪些技術替代巨集
C 內聯函式
1 什麼是內聯函式?內聯函式就是小型函式,犧牲空間來節省函式呼叫的開銷,一般用作比較小的函式,即函式內部沒有迴圈 開關語句等。內聯函式被發明出來就是為了取代c中的巨集,因為巨集是單純的替換而沒有型別檢查所以經常出毛病,2 為什麼要引入內聯函式?當然,引入內聯函式的主要目的是 解決程式中函式呼叫的效率...
C 內聯函式
1 什麼是內聯函式?2 為什麼要引入內聯函式?3 為什麼inline能取代巨集?4 內聯函式和巨集的區別?5 什麼時候用內聯函式?6 如何使用內聯函式?7 內聯函式的優缺點?8 如何禁止函式進行內聯?9 注意事項 1 什麼是內聯函式?內聯函式是指那些定義在類體內的成員函式,即該函式的函式體放在類體內...
c 內聯函式
1 什麼是內聯函式?內聯函式是指那些定義在類體內的成員函式,即該函式的函式體放在類體內。2 為什麼要引入內聯函式?當然,引入內聯函式的主要目的是 解決程式中函式呼叫的效率問題。另外,前面我們講到了巨集,裡面有這麼乙個例子 define abs x x 0?x x 當 i出現時,巨集就會歪曲我們的意思...