一,內(nèi)聯(lián)函數(shù)

1.內(nèi)聯(lián)函數(shù)的概念

  C++中的const常量可以用來代替宏常數(shù)的定義,例如:用const int a = 10來替換# define a 10。那么C++中是否有什么解決方案來替代宏代碼片段呢?C++中推薦使用內(nèi)聯(lián)函數(shù)代替宏代碼片段,C++中使用inline關(guān)鍵字聲明內(nèi)聯(lián)函數(shù)。注意:內(nèi)聯(lián)函數(shù)聲明時inline關(guān)鍵字必須和函數(shù)定義結(jié)合在一起,否則編譯器會直接忽略內(nèi)聯(lián)請求。

2.內(nèi)聯(lián)函數(shù)示例

平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

# include<iostream>using namespace std;/* 宏定義函數(shù)方式 */# define FUN1(a,b) ((a)<(b)?(a):(b))/* 內(nèi)聯(lián)定義函數(shù)方式 */inline int FUN2(int a,int b)
{    return a < b ? a : b;
}int main()
{    int a = 1;    int b = 3;    // 宏定義方式的時候是在預(yù)編譯階段直接替換,++a<b?++a:b,因此此時返回的c是3(執(zhí)行了兩次++)    // int c = FUN1(++a, b);    // 內(nèi)聯(lián)函數(shù)方式是在編譯階段將函數(shù)體直接插入到調(diào)用的地方,最終生成的代碼是沒有函數(shù)定義的
    int c = FUN2(++a, b);

    printf("a = %d\n", a);
    printf("b = %d\n", b);
    printf("c = %d\n", c);    return 0;
}

平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),游戲開發(fā),動畫培訓(xùn)

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式