- ベストアンサー
インラインについて
1つ教えていただきたいことがあるのですが、本で読んだのですが普通の関数とインラインの関数は短い関数の方だとインラインの方が早いと載っていたのですが、長いほうだと普通の関数の方が早いと載っていたのですが、なぜ長いほうだと普通の関数のほうがいいのでしょうか? わかる方いらしたらよろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
関連するQ&A
- インライン関数
インライン関数として認識されなくても、通常の関数として実行されるのなら、プログラムする際にはすべての関数にinlineと書けばいいと思います。 インライン関数を使えば実行速度が上がる。それなら何故コンパイラ側で通常の関数すべてをインライン関数として認識しないのかがわかりません。inlineと書く手間が省けるので。 lnline関数として認識しようとしたができず、通常の関数として実行する時は、通常の関数を普通に実行するときよりも実行速度が遅くなるのでしょうか?もし、遅くならないのならすべての関数をinline関数として書けばいいと思います。どうなんでしょうか?お願いします。
- 締切済み
- C・C++・C#
- インライン展開でコンパイラが何をやっているのか知りたいです
インライン展開すると、関数の呼び出しオーバーヘッドが小さくなることはわかるのですが、インライン展開した場合としていない場合と、なぜ関数呼び出しのオーバーヘッドがなくなるのかアセンブルレベルでの違いがよくわからないです。 関数をインライン展開した場合、コンパイラはどのようにコンパイルするのか、そしてその関数実行時の振る舞いがインライン展開なしの場合とどう違うのか、わからないので教えていただけませんか? 以上、よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 別ファイルのインライン関数コール
インライン関数について質問です。 前提条件 __inlineで関数定義 インライン関数を別ファイルのソースファイルから呼び出すには、ヘッダファイルにインライン関数の実体を置いておく必要があることは分かっています。 そのインライン関数の実態をソースファイルに置き、コンパイルオプションの組み合わせによって、別ファイルからコールすることは可能なのでしょうか?
- 締切済み
- C・C++・C#
- 再帰関数のインライン展開
再帰関数のインライン展開は出来るのでしょうか? もし、出来るようならアセンブラではどのように表現されているんですか? C以外の言語でも、再帰関数のインライン展開が出来るプログラム言語があれば教えてください。
- ベストアンサー
- C・C++・C#
- インライン入力について
OS Xを使用していますが、Illustrator10で文字ツールを使用時にインライン入力出来なくなりました。インライン入力にするにはmacの方を設定すればいいのか、Illustrator10の方を設定すればいいのか、よく分かりません!どちらもインライン入力に出来るのであれば、インライン入力にしたいのですが、どこをどのように設定すればいいのか教えて下さい。よろしくお願いします。
- 締切済み
- Mac
- インライン展開されているか確認する方法
VisualStudioを使用しています。 タイトルの通り、関数がインライン展開されているかどうかを確認したいのですが、何か方法はあるのでしょうか? void func(){ int a = 0; } void main(){ func(); } 例えば、上のコードで関数func()がインライン展開されてるかどうかを知りたいと思います。 どうかよろしくお願いします。
- ベストアンサー
- C・C++・C#
- インラインのアイライン
こちらで目力を出すためにはインラインにアイラインを引くのが一番、というような事を見たのですが、コンタクトレンズをしていてもインラインにアイライン入れても大丈夫なのでしょうか?
- ベストアンサー
- コスメ・化粧品
- インラインで回答?
メールでの質問の中で、「インラインで回答します」と書かれているのがありますが、インラインで回答するというのはどういうことでしょうか? ひょっとして、私の会社だけ? 教えてください。
- ベストアンサー
- その他(メールサービス・ソフト)
- クラス メンバ関数インライン化
クラス内でメンバ関数を定義するとインライン関数になると書いてあったのですが、全てクラス内でメンバ関数を定義してはだめなのでしょうか? クラス外でメンバ関数を定義するメリットを教えてください。 教えてくださいm(_ _ )m
- ベストアンサー
- C・C++・C#
- Macのインライン入力について
Macのインライン入力について 使用機種はiMac G4 OSX 10.4.11 & 9.2.2 です。 クラシック環境でノートパッドへのインライン入力はできないのでしょうか? シンプルテキストではインライン入力ができます。 ノートパッドでも前にできたような気がするのですが…、 私の勘違いでしょうか。 曖昧な質問で申し訳ありませんが、はっきりご存知の方がいましたら 教えていただければ助かります。よろしくお願いします。
- ベストアンサー
- Mac
お礼
回答ありがとうございます。 後者はわかりました。 >inline int f(int arg) >{ > return arg + 1; >} >というインライン関数があり、 >a = f(5); >のように呼び出すと、最適化によって、 >a = 6; >と展開できることを意味します。 >これがインライン関数でなければ、必ず加算を実行しなければなりま >せん。 インラインだった場合、加算しなくてもよいと言うことでしょうか? あれ?でも加算してますよね? どういうときに加算しなくていいのでしょか?