對於inline函式,首先應該要短小(inline只是對編譯器的乙個建議,編譯器是可以忽略的),其次inline函式的定義一定要與呼叫它的部分在同乙個原始檔裡,不同的原始檔可以分別定義乙個相同inline函式,內容都可以不同(不違反重複定義原則),但是這樣做會引起程式呼叫的不確定性,應該避免這種情況。為此,可採用將inline函式放在另外乙個單獨的檔案裡,那個檔案需要用就呼叫這個檔案。
我再dev c++裡做了乙個測試:
新建乙個空工程pj1,裡面有兩個檔案1. cpp,2.cpp
其中1.cpp
inline int min(int a, int b)
return a;
int get1(int a, int b)
return min(a, b);
2.cpp
# include
using namespace std;
inline int min(int a, int b)
return b;
int get2(int a, int b)
return min(a, b);
int get1(int, int);
int main(int argc, char *argv)
cout << get1(3, 4) << endl;
cout << get2(3, 4) << endl;
char p;
cin >> p;
return 0;
結果程式跑出來得結果是:
很明顯程式只呼叫了1.cpp中的min(),由此引起了問題(沒有呼叫2.cpp中的min()。
inline 函式的使用 應寫在實現的前面)
在c 中,inline函式,即內聯函式,是在函式實現的返回值前面加入關鍵字inline。下面集中情況下,函式foo為內聯函式 1 inline void foo int x inline 與函式宣告和函式實現放在一起 inline void foo int x 2 void foo int x in...
php容易被錯誤使用的empty函式
在php的官方手冊中寫道,檢查乙個變數是否為空。如果 var 是非空或非零的值,則 empty 返回 false。換句話說,0 0 null false array var var 以及沒有任何屬性的物件都將被認為是空的,如果 var 為空,則返回 true。隨後在其手冊中鄭重說明了,empty 只...
php容易被錯誤使用的empty函式
在php的官方手冊中寫道,檢查乙個變數是否為空。如果 var 是非空或非零的值,則 empty 返回 false。換句話說,0 0 null false array var var 以及沒有任何屬性的物件都將被認為是空的,如果 var 為空,則返回 true。隨後在其手冊中鄭重說明了,empty 只...