インラインとマクロの違い
インラインとマクロ
C ++はコンピュータプログラミングの分野では近すぎます。強力な言語であるため、巨大な関数ライブラリのためにプログラマーには少し混乱することがあります。インライン関数は、その言語のマクロと簡単に混同することができる関数の1つです。
両者の間には小さな違いがあるわけではありませんが、それらが保持する特性のためにちょっと混乱することがあります。この記事では、C ++のインライン関数とマクロの違いについて詳しく説明します。
<! - > - >インライン
インライン関数は、C ++の他の関数と同様に、通常の方法で呼び出されます。実行する関数は、コンパイルされた関数定義のコピーを作成することです。つまり、定義された項目のコピーを作成してコンパイルします。たとえば、2つの整数を加算してインライン関数を呼び出すと、コンパイラはコンパイルする整数のコピーを作成します。
例:
<! - > - >Inline int sum(int x、int y);
Return(x + y);
}
マクロ
C ++のマクロは、テキスト行をプログラム行に実装します。つまり、関数で定義された変更に従ってテキストを置き換えます。関数としてのインラインとは異なり、マクロは関数を使用してコードを操作します。例:
#define DOUBLE(X)X * X
int y = 5;
int j = DOUBLE(++ y);
ここでは、値を30にします!呼び出しはマクロを介して行われるので、 "X"は++ yに置き換えられ、++ yには別の++ yが乗算されます。これは合計で5 * 6で30 = 6ではありません.6は基本ですが間違った答えです。
<! - 3 - >
ここで、マクロがバグを引き起こしている可能性があります。インライン関数は、値をコンパイラのメモリにコピーしてコンパイルすることで救済されます。要約:1。インライン関数は、関数定義のコピーを作成します。 2。関数内で識別され、定義されたテキストがマクロに置き換えられます。 3。インライン関数は、マクロがプログラムにバグを起こすはずの場合にも適用されます。