c++ primer plus 學習筆記(第八章)
c++內聯函式
內聯函式是c++為提高程式執行速度所做的一項改進。常規函式和內聯函式之間的主要區別不在於編寫方式,而在於c++編譯器如何將它們組合到程式中。
編譯器將使用相應的函式**替換函式呼叫。對於內聯**,程式無需跳到另乙個位置處執行**,再跳回來。因此,內聯函式的執行速度比常規函式稍快,但是**是需要占用更多記憶體。
應有選擇地使用內聯函式。如果執行函式**的時間比處理函式呼叫機制的時間長,則節省的時間將只佔整個過程的很小一部分。如果**執行時間很短,則內聯函式就可以節省非內聯呼叫使用的大部分時間。另一方面,由於這個過程相當快,因此儘管節省了該過程的大部分時間,但節省的時間絕對值並不大,除非該函式經常被呼叫。
要使用內聯函式,必須採取以下措施之一:
·在函式宣告前加上關鍵字inline;
·在函式定義前加上關鍵字inline;
通常的做法是省略原型,將整個定義(即函式頭和所有函式**)放在本應該提供原型的地方。
程式設計師請求將函式作為內聯函式時,編譯器並不一定會滿足這種要求。它可能認為該函式過大或注意到函式呼叫了自己(內聯函式不能遞迴),因此不將其作為內聯函式;而有些編譯器沒有啟用或實現這種特性。
注意到整個函式定義都放在一行中,但並不一定非得這樣做。然而,如果函式定義占用多行(假定沒有使用冗長的識別符號),則將其作為內聯函式就不太適合。
內聯與巨集
inline工具是c++新增的特性。c語言使用預處理器語句#define來提供巨集--內聯**的原始實現。
如果使用c語言的巨集執行了類似函式的功能,應該考慮將它們轉換為c++內聯函式。
c primer plus學習筆記
1.變數名命名規則 重要的 1 有含義 2 只能用字母字元 數字和下劃線 3 第乙個字元不能是數字 4 區分大小寫 5 不能用c 關鍵字 2.整型 1 無符合型別不能表負值 2 char short 16 int short long 32,int 和longlong 64,long c 11 寬度...
C PrimerPlus學習筆記
if語句中判斷恒等,將常量放前,防止由於 寫成 造成的難以查詢的bug。if 0 count 若寫成 0 count 會報錯,count 0 則不會命名空間 using namespace std cout one cout two std cout one std cout two using s...
C Primer Plus學習筆記
1.組合語言是特地的cpu設計所採用的一組內部指令的助記符,不同的cpu型別使用不同的cpu c給予你更多的自由,也讓你承擔更多的風險 自由的代價是永遠的警惕 2.目標 檔案 可執行檔案和庫 3.可以用畫幾個盒子的方式來跟蹤乙個程式的變數 一門語言的語法就是一套規則,用於管理這種語言中的合法語句組織...