#include <iostream> inline int max(int a, int b, int c); /* 程序執(zhí)行函數(shù)調(diào)用時(shí),,系統(tǒng)要?jiǎng)?chuàng)建棧空間,, 等 這些需要系統(tǒng)時(shí)間和空間開(kāi)銷 當(dāng)一個(gè)函數(shù) 功能簡(jiǎn)單,,代碼簡(jiǎn)短 需要頻繁調(diào)用時(shí) 為了 提高效率 我們可以用 inline關(guān)鍵字去修飾該函數(shù) 此函數(shù)稱為 內(nèi)聯(lián)函數(shù),。 內(nèi)聯(lián)函數(shù)是 編譯器展開(kāi)的程序,不涉及其他開(kāi)銷 如果函數(shù)里 有 switch for 等語(yǔ)句 編譯器 是不會(huì)以內(nèi)聯(lián)的方式來(lái)解析 */ /* 宏: 可以定義常量 ,,可以定義帶參數(shù)的宏(類似函數(shù)) 但是 宏 只是字符替換 沒(méi)有類型檢查 所以 在C++ 中高層次 中 推薦用 const enum inline 來(lái)代替 宏定義 */ #define MAX(a, b, c) (a) > (b)? (a): (c) //宏定義可以實(shí)現(xiàn) inline int max(int a, int b, int c) { return a > b? a : c; } int main(void) { std::cout<<max(1, 2, 3)<<std::endl; int i = MAX(1, 2, 3); std::cout<<i<<std::endl; return 0; } 內(nèi)聯(lián)函數(shù) 是直接 嵌入程序調(diào)用的地方,,從而減少函數(shù)開(kāi)銷 但是 程序體積會(huì)增大 用空間換時(shí)間的表現(xiàn) |
|