インライン関数
インライン関数(英: inline function)とは、プログラミング言語の言語機能および構文の一種で、コンパイラに対して特定の関数をインライン展開するよう指示するものである。つまり、コンパイラに対して、その関数を呼び出している全ての箇所に関数の実体を挿入するよう指示する。
インライン展開にまつわる問題だけでなく、インライン関数は言語機能として積極的に使用されない一面がある。その理由は次の通りである:
多くの場合、人間よりもコンパイラがインライン化すべき関数を決定する方がよい結果になる。人間がインライン化したいと考える関数よりもコンパイラがインライン化できると判断する関数の数が少ない場合は特にそうである。
プログラムの修正によって、かつてはインライン化すべきだった関数がインライン化すべきでないものになったり、逆の変化が起きたりする。これはマクロの場合も似たようなものだが、コードの保守という観点から見ればインライン関数にはあまり利点はない。
C言語でインライン関数を多用するとコンパイル時間が延びる傾向がある。これは関数の実体が呼び出している各所に埋め込まれて中間表現を形成するためである。コードサイズの増加はコンパイル時間の増加ももたらす。
インライン展開そのものの問題についてはインライン展開の欠点を参照されたい。