C++ 中行內函數和宏的區別


在這篇文章中,我們將瞭解 C++ 中行內函數和宏的區別。

行內函數

  • 它是 C++ 中的一種函式。

  • 它由編譯器解析。

  • 它可以在類內或類外定義。

  • 它只評估引數一次。

  • 編譯器可能不會將所有函式轉換為“內聯”函式並擴充套件它們。

  • 在類內部定義的短函式會自動成為行內函數。

  • 類內的行內函數可以訪問類的成員資料。

  • 行內函數可以使用大括號終止。

  • 它易於除錯。

  • 這是因為錯誤檢查在編譯期間完成。

  • 它繫結函式體中的所有語句。

示例

inline return_type funct_name ( parameters ) {
   . . .
}

  • 它由預處理器擴充套件。

  • 它在程式開頭定義。

  • 它在程式碼中每次使用時都會評估引數。

  • 它們總是需要/會被擴充套件。

  • 它們需要專門定義。

  • 它們永遠不會成為類的成員。

  • 它們無法訪問類的成員資料。

  • 宏的定義以換行符結束。

  • 由於錯誤檢查不會在編譯時發生,因此難以除錯宏。

  • 如果它包含多個語句,則會遇到繫結問題,因為它沒有終止符號。

示例

#define macro_name char_sequence

更新於: 2021年3月24日

838 次瀏覽

啟動你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.