c++內置函數---7


 原創博客:轉載請標明出處:http://www.cnblogs.com/zxouxuewei/

 

內置函數

調用函數時需要一定的時間和空間的開銷。一般,函數調用包括5部分:

1、程序先執行函 數調用之前的語句;

2、流程的控制轉移到被調用函數的入口處,同時進行參數傳遞;

3、執行被調用函數中函數體的語句;

4、流程返回調用函數的下一條指令 處,將函數返回值帶回;

5、接着執行主調函數中未執行的語句。這就要求在轉到被調用函數之前,要記下當時執行的指令地址,還要保護“現場”,以便在函數調 用之后繼續執行。在函數調用之后繼續執行。在函數調用之后,流程繼續返回到先前記下的地址處,並且根據記下的信息“回復現場”,然后繼續執行。這些都需要 話費一定的時間,如果有的函數需要頻繁使用,則所用時間會很長,從而降低了程序執行的效率。

C++中提供了一種高效率的方法,即在編譯時將所調用函數的代 碼嵌入到主調函數中,而不是將流程流轉出去。這種函數成為內置函數,又稱內聯函數。指定內斂函,只需要在函數的首行左部添加一個關鍵字inline即可。

 

#include <iostream>
using namespace std; inline int max(int,int, int); //聲明函數,注意左端有 inline int main() { int i=10,j=20,k=30,m; m=max(i,j,k); cout<<″max=″<<m<<endl; return 0; }
inline
int max(int a,int b,int c) //定義max 為內置函數 { if(b>a) a=b;//求 a,b,c中的最大者 if(c>a) a=c; return a; }

使用內斂函數可以節省運行時間,但是卻增加了目標程序的長度。因此一般只將規模很小(一般為5個語句以下)而是用頻繁的函數聲明為內聯函數。內聯函數中不能包括復雜的控制語句,如循環語句和switch語句。

 

    class Student
    {
    public :
    void display( )
    {
        cout<<″num:″<<num<<endl;cout<<″name:″
        <<name<<endl;cout<<″sex:″<<sex<<endl;}
    private :
        int num;
        string name;
        char sex;
    };

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM