C/C++ inline 函式
C/C++中包含了一類inline函式,其只是單純在原本函式申明或者定義前面多了一個inline
但是帶來含義的確實不一樣的。
如果不帶inline那麼主函式執行到函式入口處會跳到相應的函式程式碼除繼續執行,在記憶體
中的程式碼段記憶體中這些程式碼不是連續的,這樣肯能帶來一些時間損耗
如果加入inline後函式會copy一份到主函式中,這樣佔用一定的記憶體但是不會jump(應該彙編使用的jump指令)
那麼這樣一來,可能inline函式適用的範圍為函式程式碼本身程式碼量很少,而且執行非常快。
如果程式碼量大那麼COPY佔用的記憶體過多,如果執行非常慢,減少JUMP帶來的提升只是
微不足道的提升,下面演示他的使用
以下的列子為了展示3個問題
1、inline function 申明
2、使用typedef 定義一個函式指標的別名,並且使用它來宣告一個f_p的變數接受add的地址
3、函式返回的const型別的指標必須和在主函式中使用const int *接受
1 /*************************************************************************
2 > File Name: inline.cpp
3 > Author: gaopeng
4 > Mail: gaopp_200217@163.com
5 > Created Time: Thu 26 May 2016 09:45:18 PM CST
6 ************************************************************************/
7
8 #include
9
10 typedef const int* (*Fun_p)(const int *input);//typedef define a Fun_p alias to a function pointer
11 using namespace std;
12
13 inline const int * add(const int *input);
14 int main(void)
15 {
16 int input = 2;
17 const int *re;
18 Fun_p f_p = add;
19 re = f_p(&input);
20 cout<< *re <<endl;
21
22 }
23
24
25
26 inline const int * add(const int *input)
27 {
28 static int addva;
29 addva = *input+*input;
30 return &addva;
31
32 }
</endl;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2112427/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C++ inline和constexpr函式可以多次定義問題C++inline函式
- C++函式C++函式
- 【C++】函式C++函式
- C/C++—— C++中函式重寫和函式過載C++函式
- c++ Beep函式C++函式
- c++函式模板C++函式
- C++仿函式C++函式
- C++ Virtual函式C++函式
- C++的函式式革命C++函式
- C++ replace() 函式用法C++函式
- C++中strlen函式C++函式
- C++解構函式C++函式
- C++函式過載C++函式
- c++ 函式指標C++函式指標
- C++之memset函式C++函式
- C++ 序列操作函式C++函式
- 【C++】建構函式C++函式
- C++ 虛擬函式C++函式
- C++建構函式C++函式
- C++ -- TranslateMessage函式C++函式
- C++虛擬函式C++函式
- C++筆記--函式C++筆記函式
- 函式回撥(C++)函式C++
- c++的remove函式C++REM函式
- C++(函式指標)C++函式指標
- C++靜態函式C++函式
- C++ 建構函式和解構函式C++函式
- C++的函式和模板函式 (轉)C++函式
- C/C++—— C++中建構函式不能是虛擬函式的原因分析C++函式
- C++ 中 inline 用法概述C++inline
- 關於inline函式inline函式
- C++中函式指標與函式物件C++函式指標物件
- C++ 類建構函式和解構函式C++函式
- c++中訊息函式 -- GetMessage函式C++函式
- C++回撥函式 用法C++函式
- C++ 函式 realloc 的用法C++函式
- C++之函式過載C++函式
- c++虛擬函式表C++函式