インライン関数は、gcc が asm コードを生成するフェーズでそのコードに置き換えられます。
再帰関数にインラインを使用した場合の動作はどうなりますか
inline int fact (int n)
{
if (n<=1)
return 1;
else
return (n * fact(n-1));
}
gcc -S
再帰関数にinline
接頭辞がある場合と再帰関数に接頭辞がない場合のasmコードを生成するinline
と、両方の場合のasmコードが同じであることがわかりました。
それについて何か説明はありますか?