程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言內聯函數使用教程

C語言內聯函數使用教程

編輯:關於C語言
 

內聯函數也稱內嵌函數,它主要解決程序的運行效率。

#####################問題#########################################
函數調用需要建立棧內存環境,進行參數傳遞,並產生程序執行轉移,這些轉移都需要時間開銷。
有些函數在程序中使用率較高,但代碼卻很短。
我們可以在程序當中用表達式替換函數調用,但是降低了函數的可讀性。
######################解決方法#################################################
使用內聯函數
內聯函數必須在被調用前聲明或定義。因為內聯函數的代碼必須在被替換之前已經聲稱被替換的代碼。
注意:
1.在內聯函數內不允許用循環語句和開關語句。遞歸函數是不能用來做內聯函數的。
2.內聯函數的定義必須出現在內聯函數第一次被調用之前。
3.內聯函數只適合於1-5行的小函數。對於一個含有很多語句的大函數,函數調用和返回的開銷相對來說是微不足道的。

#include <iostream.h>
inline int isnumber(char); // inline 函數聲名

void main()
{
char c;
while((c=cin.getc())!= '\n ')
{
if( isnumber(c) ) //調用一個小函數
cout < < "you entered a digit \n ";
else
cout < < "you entered a non-digit \n ";
}
}

int isnumber (char ch) //此處無inline,視為inline
{
return (ch> = '0 '&& ch <= '9 ')?1:0;
}
 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved