學點 C 語言(39): 函數 – 使用函數的代價與內嵌函式(inline)

來源:互聯網
上載者:User
C 語言離不開函數, 使用函數也很方便, 但使用函數是有代價的;
特別是在反覆調用時, 函數會因反覆地壓棧、出棧而浪費一些時間.

下面是測試, 用函數與不用函數的時間分別是: 8秒、4秒!

1. 測試使用函數的代價:
#include <stdio.h>#include <time.h>int sum(int x) {    return x + x;}int main(void){    int count = 1000000000;    int i;    int num;        time_t start, stop;    time(&start);    for (i = 0; i 

2. 使用內嵌函式:

在函數頭上冠上 inline 關鍵字就是內嵌函式了.

使用內嵌函式可以讓函數得到最佳化, 所謂最佳化就是把函數嵌入到當前位置.

一般只可以考慮把較小的函數使用內聯, 因為這隻是個申請, 編譯器不保證對所有的申請執行內聯.

內嵌函式只能使用在被定義(而不是被聲明)的單元.

下面繼續使用了上面的例子(只添加了一個 inline) 測試.

測試了幾次, 基本還是上面的測試結果; 看來 C++Builder 2009 並沒有理會它.

#include <stdio.h>inline int sum(int x) {    return x + x;}int main(void){    int count = 1000000000;    int i;    int num;        time_t start, stop;    time(&start);    for (i = 0; i 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.