- C++面向?qū)ο蟪绦蛟O(shè)計(jì)
- 杜茂康等編著
- 407字
- 2019-01-01 05:54:54
2.8 內(nèi)聯(lián)函數(shù)
在函數(shù)聲明或定義時(shí),將inline關(guān)鍵字加在返回類型前面的函數(shù)就是內(nèi)聯(lián)函數(shù)。
【例2-17】 求兩個(gè)數(shù)最大值的函數(shù)inline( )。
//Eg2-17.cpp #include<iostream.h> inline int max(int a,int b){ return a>b?a:b; } void main(){ int x1=max(3,4); int x2=max(7,2); int x4=max(x1,x2); }
內(nèi)聯(lián)函數(shù)的聲明、定義和調(diào)用方法與普通函數(shù)相同,但C++對它們的處理方式不一樣。在編譯時(shí),C++將用內(nèi)聯(lián)函數(shù)的代碼替換對它的每次調(diào)用。上面的main()函數(shù)多次調(diào)用了內(nèi)聯(lián)函數(shù)max(),C++在編譯此程序時(shí)會(huì)將main()函數(shù)中的函數(shù)調(diào)用替換成如下形式:
void main(){ int x1=3>4?3:4; int x2=7>2?7:2; int x4=x1>x2?x1:x2; }
函數(shù)inline()不需要建立函數(shù)調(diào)用時(shí)的運(yùn)行環(huán)境,不需要進(jìn)行參數(shù)傳遞,所以執(zhí)行時(shí)間更快。當(dāng)然,由于每次調(diào)用函數(shù)inline()時(shí),都會(huì)插入它的函數(shù)代碼,所以它會(huì)使程序的代碼增加,占用更多的存儲空間。
說明:① 內(nèi)聯(lián)函數(shù)的聲明或定義必須在函數(shù)的調(diào)用之前完成;② 一般而言,只有幾行程序代碼的(最好只有1~5行)、經(jīng)常被調(diào)用的簡單函數(shù)才適宜作為內(nèi)聯(lián)函數(shù)。以下3種函數(shù)不能作為內(nèi)聯(lián)函數(shù):遞歸函數(shù),函數(shù)體內(nèi)含有循環(huán)、switch、goto語句之類復(fù)雜結(jié)構(gòu)的函數(shù),或者具有較多程序代碼的大函數(shù)。
- AutoCAD繪圖實(shí)用速查通典
- Machine Learning for Cybersecurity Cookbook
- 蕩胸生層云:C語言開發(fā)修行實(shí)錄
- Data Wrangling with Python
- 新手學(xué)電腦快速入門
- 網(wǎng)絡(luò)組建與互聯(lián)
- Ceph:Designing and Implementing Scalable Storage Systems
- Machine Learning with the Elastic Stack
- Salesforce for Beginners
- 嵌入式操作系統(tǒng)原理及應(yīng)用
- Building a BeagleBone Black Super Cluster
- 機(jī)器學(xué)習(xí)案例分析(基于Python語言)
- 常用傳感器技術(shù)及應(yīng)用(第2版)
- Visual Basic項(xiàng)目開發(fā)案例精粹
- Microsoft System Center Data Protection Manager Cookbook