• ベストアンサー

インラインについて

oldman50の回答

  • oldman50
  • ベストアンサー率29% (8/27)
回答No.3

 インライン関数が早いのは、関数の呼び出しや分岐によるオーバーヘッドを省くことができるからです。  たとえば、ある関数本体の処理にかかる実行時間が10で、その関数の呼び出しにかかるオーバーヘッド時間が10だとすると、インライン化して後者を省けば、全体の実行時間を半減させることができます。  しかし、関数本体の処理にかかる実行時間が1000だとすると、関数の呼び出し時のオーバーヘッドを省くことで得られる効果は、ほとんどありません。

関連するQ&A

  • インライン関数

    インライン関数として認識されなくても、通常の関数として実行されるのなら、プログラムする際にはすべての関数にinlineと書けばいいと思います。 インライン関数を使えば実行速度が上がる。それなら何故コンパイラ側で通常の関数すべてをインライン関数として認識しないのかがわかりません。inlineと書く手間が省けるので。 lnline関数として認識しようとしたができず、通常の関数として実行する時は、通常の関数を普通に実行するときよりも実行速度が遅くなるのでしょうか?もし、遅くならないのならすべての関数をinline関数として書けばいいと思います。どうなんでしょうか?お願いします。

  • インライン展開でコンパイラが何をやっているのか知りたいです

    インライン展開すると、関数の呼び出しオーバーヘッドが小さくなることはわかるのですが、インライン展開した場合としていない場合と、なぜ関数呼び出しのオーバーヘッドがなくなるのかアセンブルレベルでの違いがよくわからないです。 関数をインライン展開した場合、コンパイラはどのようにコンパイルするのか、そしてその関数実行時の振る舞いがインライン展開なしの場合とどう違うのか、わからないので教えていただけませんか? 以上、よろしくお願いします。

  • 別ファイルのインライン関数コール

    インライン関数について質問です。 前提条件 __inlineで関数定義 インライン関数を別ファイルのソースファイルから呼び出すには、ヘッダファイルにインライン関数の実体を置いておく必要があることは分かっています。 そのインライン関数の実態をソースファイルに置き、コンパイルオプションの組み合わせによって、別ファイルからコールすることは可能なのでしょうか?

  • 再帰関数のインライン展開

    再帰関数のインライン展開は出来るのでしょうか? もし、出来るようならアセンブラではどのように表現されているんですか? C以外の言語でも、再帰関数のインライン展開が出来るプログラム言語があれば教えてください。

  • インライン入力について

    OS Xを使用していますが、Illustrator10で文字ツールを使用時にインライン入力出来なくなりました。インライン入力にするにはmacの方を設定すればいいのか、Illustrator10の方を設定すればいいのか、よく分かりません!どちらもインライン入力に出来るのであれば、インライン入力にしたいのですが、どこをどのように設定すればいいのか教えて下さい。よろしくお願いします。

    • 締切済み
    • Mac
  • インライン展開されているか確認する方法

    VisualStudioを使用しています。 タイトルの通り、関数がインライン展開されているかどうかを確認したいのですが、何か方法はあるのでしょうか? void func(){ int a = 0; } void main(){ func(); } 例えば、上のコードで関数func()がインライン展開されてるかどうかを知りたいと思います。 どうかよろしくお願いします。

  • インラインで回答?

    メールでの質問の中で、「インラインで回答します」と書かれているのがありますが、インラインで回答するというのはどういうことでしょうか? ひょっとして、私の会社だけ? 教えてください。

  • インラインのアイライン

    こちらで目力を出すためにはインラインにアイラインを引くのが一番、というような事を見たのですが、コンタクトレンズをしていてもインラインにアイライン入れても大丈夫なのでしょうか?

  • クラス メンバ関数インライン化

    クラス内でメンバ関数を定義するとインライン関数になると書いてあったのですが、全てクラス内でメンバ関数を定義してはだめなのでしょうか?   クラス外でメンバ関数を定義するメリットを教えてください。 教えてくださいm(_ _ )m

  • Macのインライン入力について

    Macのインライン入力について 使用機種はiMac G4 OSX 10.4.11 & 9.2.2 です。 クラシック環境でノートパッドへのインライン入力はできないのでしょうか? シンプルテキストではインライン入力ができます。 ノートパッドでも前にできたような気がするのですが…、 私の勘違いでしょうか。 曖昧な質問で申し訳ありませんが、はっきりご存知の方がいましたら 教えていただければ助かります。よろしくお願いします。

    • ベストアンサー
    • Mac