c++中的內(nèi)聯(lián)函數(shù)inline用法實例
問題描述:類中成員函數(shù)缺省默認(rèn)是內(nèi)聯(lián)的,如果在類定義時就在類內(nèi)給出函數(shù)定義,那當(dāng)然最好。如果在類中未給出成員函數(shù)定義,而又想內(nèi)聯(lián)該函數(shù)的話,那在類外要加上 inline,否則就認(rèn)為不是內(nèi)聯(lián)的。內(nèi)聯(lián)函數(shù)的inline要加在函數(shù)前面,不可以加在聲明前面。
class A { public:void Foo(int x, int y) { } // 自動地成為內(nèi)聯(lián)函數(shù) } //正確寫法: // 頭文件 class A { public: void Foo(int x, int y); } // 定義文件 inline void A::Foo(int x, int y){} //錯誤寫法: inline void Foo(int x, int y); // inline 僅與函數(shù)聲明放在一起 void Foo(int x, int y){}
1. 內(nèi)聯(lián)函數(shù)作用:為了解決一些頻繁調(diào)用的小函數(shù)大量消耗??臻g(棧內(nèi)存)的問題,特別的引入了 inline 修飾符,表示為內(nèi)聯(lián)函數(shù)。
例子:
#include <stdio.h> //函數(shù)定義為inline即:內(nèi)聯(lián)函數(shù) inline char* dbtest(int a) { return (i % 2 > 0) ? "奇" : "偶"; } int main() { int i = 0; for (i=1; i < 100; i++) { printf("i:%d 奇偶性:%s /n", i, dbtest(i)); } }
內(nèi)聯(lián)函數(shù)是在程序編譯的時候替換的方式加入程序中的。
2. 內(nèi)聯(lián)函數(shù)使用的限制:
inline 的使用是有所限制的,inline 只適合涵數(shù)體內(nèi)代碼簡單的涵數(shù)使用,不能包含復(fù)雜的結(jié)構(gòu)控制語句例如 while、switch,并且不能內(nèi)聯(lián)函數(shù)本身不能是直接遞歸函數(shù)(即,自己內(nèi)部還調(diào)用自己的函數(shù))。
代碼較長,內(nèi)部出現(xiàn)循環(huán)不適合使用內(nèi)聯(lián)函數(shù)。
3. 內(nèi)聯(lián)函數(shù)只是一個對編譯器的建議,具體實不實現(xiàn)看編譯器認(rèn)為函數(shù)復(fù)不復(fù)雜。
4.內(nèi)聯(lián)函數(shù)最好放在頭文件中。
以上就是本次介紹的全部知識點內(nèi)容,感謝大家的學(xué)習(xí)和對腳本之家的支持。
- C++深入探索內(nèi)聯(lián)函數(shù)inline與auto關(guān)鍵字的使用
- C++入門(命名空間,缺省參數(shù),函數(shù)重載,引用,內(nèi)聯(lián)函數(shù),auto,范圍for)
- c++ 內(nèi)聯(lián)函數(shù)和普通函數(shù)的區(qū)別
- C++編程中隊內(nèi)聯(lián)函數(shù)的理解和使用
- 詳解C++中的內(nèi)聯(lián)函數(shù)和函數(shù)重載
- c++內(nèi)聯(lián)函數(shù)(inline)使用詳解
- 深入解讀C++ 內(nèi)聯(lián)函數(shù)inline|nullptr
相關(guān)文章
簡單掌握C++編程中的while與do-while循環(huán)語句使用
這篇文章主要介紹了C++編程中的while與do-while循環(huán)語句使用,區(qū)別就是while是先判斷再執(zhí)行,而do-while是先執(zhí)行再判斷,需要的朋友可以參考下2016-01-01數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組Array實例詳解
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組Array實例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05c++調(diào)用python實現(xiàn)圖片ocr識別
所謂c++調(diào)用python,實際上就是在c++中把整個python當(dāng)作一個第三方庫引入,然后使用特定的接口來調(diào)用python的函數(shù)或者直接執(zhí)行python腳本,本文介紹的是調(diào)用python實現(xiàn)圖片ocr識別,感興趣的可以了解下2023-09-09C++高性能服務(wù)器框架之協(xié)程調(diào)度模塊
這篇文章主要介紹了C++高性能服務(wù)器框架中的協(xié)程調(diào)度模塊,文中通過代碼示例介紹的非常詳細(xì),對我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2023-06-06