C++ inline

來源:互聯網
上載者:User
/*功能,C++ inline。可以用來取代宏定義的函數。聲明定義內嵌函式,提示編譯時間內聯——將所調用的代碼嵌入到主調函數中。注意是否內聯取決於實現——編譯器有權不實際內聯,如果它認為這是必要的或更符合預期的目標代碼品質。日期,2013年3月13日環境,ubuntu1204-gcc部落格,http://blog.csdn.net/shunqiziranhao007/article/details/8670253*/#include <iostream>using std::cout; using std::endl;#define P1 cout << endl;#define P2(X) cout << X;#define P3(X) cout << X << endl;// 普通函數inline,其實像下面這麼短小的程式,有些ide會自動inline化,如vs2010。inline void f(){P3("abc")}// inline函數模板,注意文法,inline寫在template後面template<typename T> inline void f1() {}// 錯誤: expected unqualified-id before ‘<’ token//x inline template<typename T> void f2() {}class A{public:// 在類中聲明和實現的函數會自動成為inline,這是隱式inlinevoid f() { P3("A::f()") }// 顯式說明該函數為inline,類內說明,類外定義inline void f1();void f2();};// inline可加也可不加inline void A::f1(){P3("A::f1()")}// 雖然類中沒有聲明為inline但是類外定義時可以加上inlineinline void A::f2(){P3("A::f2()")}int main(){f();P1A a;a.f();a.f1();a.f2();}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.