C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++のインライン関数の利点は?


C ++インライン関数は、クラスで一般的に使用される強力な概念です。関数がインラインの場合、コンパイラは、コンパイル時に関数が呼び出される各ポイントにその関数のコードのコピーを配置します。

インライン関数を変更すると、コンパイラはすべてのコードをもう一度置き換える必要があるため、関数のすべてのクライアントを再コンパイルする必要があります。そうしないと、古い機能が続行されます。

関数をインライン化するには、関数名の前にキーワードinlineを配置し、関数を呼び出す前に関数を定義します。定義された関数が1行を超える場合、コンパイラはインライン修飾子を無視できます。

クラス定義の関数定義は、インライン指定子を使用しなくても、インライン関数定義です。

以下は、インライン関数を使用して最大2つの数値を返す例です-

#include <iostream>
using namespace std;
inline int Max(int x, int y) {
   return (x > y)? x : y;
}
// Main function for the program
int main() {
   cout << "Max (20,10): " << Max(20,10) << endl;
   cout << "Max (0,200): " << Max(0,200) << endl;
   cout << "Max (100,1010): " << Max(100,1010) << endl;
   return 0;
}

出力

Max (20,10): 20
Max (0,200): 200
Max (100,1010): 1010

ここで、コードでインライン関数を使用する利点は何ですか?

  • ここでは、関数呼び出しのオーバーヘッドは発生しません。

  • 関数が呼び出されたときに、スタック上のプッシュ変数とポップ変数のオーバーヘッドを節約します。

  • 関数からのリターン呼び出しのオーバーヘッドを節約します。

  • 1つのインライン関数が作成されると、コンパイラーは関数の本体に対してコンテキスト固有の最適化を実行する場合があります。この種の最適化は、通常の機能では実行されません。

  • インラインは関数呼び出しのプリアンブルとリターンよりも少ないコードを生成できるため、小さなインライン関数の使用は組み込みシステムに役立つ場合があります。


  1. C ++のlog()関数

    C / C++ライブラリ関数doublelog(double x)は、xの自然対数(baseelogarithm)を返します。以下はlog()関数の宣言です。 double log(double x) パラメータは浮動小数点値です。そして、この関数はxの自然対数を返します。 例 #include <iostream> #include <cmath> using namespace std; int main () {    double x, ret;    x = 2.7;    /* finding l

  2. C ++のswap()関数

    swap()関数は、2つの数値を交換するために使用されます。この関数を使用すると、2つの数値を交換するために3番目の変数は必要ありません。 C ++言語でのswap()の構文は次のとおりです。 void swap(int variable_name1, int variable_name2); 変数に値を割り当てるか、ユーザー定義の値を渡すと、変数の値が交換されますが、変数の値は実際の場所では同じままです。 これがC++言語でのswap()の例です 例 #include <bits/stdc++.h> using namespace std; int main() { &nb