簡單提一下inline 的使用吧:
1.在類中定義這種函式:
class classname; // 如果在類中直接定義,不需要用inline修飾,編譯器自動化為內聯函式
.... //此說法在《c++ primer》中提及
2.在類外定義前加inline關鍵字:
class account //與1相同
double getbalance(); //在類中宣告
double deposit( double amount );
double withdraw( double amount );
private:
double balance;
inline double account::getbalance() //在類外定義時新增inline關鍵字
inline double account::deposit( double amount )
inline double account::withdraw( double amount )
此外含有一些規則需注意:
1、inline說明對對編譯器來說只是一種建議,編譯器可以選擇忽略這個建議。比如,你將乙個長達1000多行的函式指定為inline,編譯器就會忽略這個inline,將這個函式還原成普通函式。
2、在呼叫內聯函式時,要保證內聯函式的定義讓編譯器"看"到,也就是說內聯函式的定義要在標頭檔案中,這與通常的函式定義不一樣。但如果你習慣將函式定義放在cpp檔案中,或者想讓標頭檔案更簡潔一點,可這樣做:
中#ifndef someinline_h
#define someinline_h
inline type example(void);
//........其他函式的宣告
#include「someinlie.cpp」 //原始檔字尾名隨編譯器而定
#endif
中#include"someinline.h"
type example(void)
//...............其他函式的定義
以上方法是通用、有效的,可放心使用,不必擔心在標頭檔案包含cpp檔案會導致編譯錯誤。
C inline內建函式
呼叫函式時需要一定的時間,如果有的函式需要頻繁使用,則累計所用時間會很長,從而降低程式的執行效率。c 提供了一種提高效率的方法,即在編譯時將所呼叫的函式 嵌入到主函式中。這種嵌入到主函式中的函式被稱為內建函式 inline function 又稱為內嵌函式。指定內建函式的方法很簡單,只須在函式首行的...
C inline 內聯函式
內聯函式 1 內聯函式定義和作用 將乙個函式宣告為inline,那麼函式就成為內聯函式。內聯函式通常就是它在程式中每個呼叫點上 內聯地 展開。從定義上看,內聯函式跟一般函式不一樣,一般函式呼叫的時候是需要呼叫開銷的 比如出棧入棧等操作 內聯函式從定義上看更像是巨集,但是跟巨集不一樣。內聯函式的作用主...
C inline內連函式
1.內聯函式 在c 中我們通常定義以下函式來求兩個整數的最大值 複製 如下 int max int a,int b 為這麼乙個小的操作定義乙個函式的好處有 閱讀和理解函式 max 的呼叫,要比讀一條等價的條件表示式並解釋它的含義要容易得多 如果需要做任何修改,修改函式要比找出並修改每一處等價表示式容...